Home  >  Q&A  >  body text

javascript - express中的chunk拼接

在express中接收网页POST过来的图片data时,chunk拼接后得到的数据头尾总是用一段说明信息(大小314字节)。
请问如何取出真正的图片data内容?
这段信息有什么用?

↓得到的数据

------WebKitFormBoundary1h2fSYcmIqL12kVj
    Content-Disposition: form-data; name="uid"

    rc-upload-1488190554987-16
    ------WebKitFormBoundary1h2fSYcmIqL12kVj
    Content-Disposition: form-data; name="file"; filename="2328bd2a317f33315c60.jpeg"
    Content-Type: image/jpeg
    《这里是需要的图片数据》
    ------WebKitFormBoundary1h2fSYcmIqL12kVj--

↓chunk拼接代码

var chunks = [];
  var size = 0;
  req.on('data',function(chunk){
    chunks.push(chunk);
    size += chunk.length;
  });

  req.on('end',async()=>{
    var data = null;
    switch(chunks.length) {
      case 0:
        data = new Buffer(0);
        break;
      case 1:
        data = chunks[0];
        break;
      default:
        data = new Buffer(size);
        for (var i = 0, pos = 0, l = chunks.length; i < l; i++) {
          var chunk = chunks[i];
          chunk.copy(data, pos);
          pos += chunk.length;
        }
        break;
    }
 });   
大家讲道理大家讲道理2654 days ago280

reply all(1)I'll reply

  • ringa_lee

    ringa_lee2017-04-11 12:16:42

    这种Boundary存在浏览器的差异问题,而且不同content-type接收和处理的方式也不一样;
    所以建议使用formidable或者其他模块;

    reply
    0
  • Cancelreply