在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;
}
});
ringa_lee2017-04-11 12:16:42
这种Boundary存在浏览器的差异问题,而且不同content-type接收和处理的方式也不一样;
所以建议使用formidable或者其他模块;