javascript - express中的chunk拼接
大家讲道理
大家讲道理 2017-04-11 12:14:42
[JavaScript讨论组]

在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;
    }
 });   
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号