前端上传非FormData格式的文件,node怎么接收处理
发布于 4 个月前 作者 edisonchan97 1249 次浏览 来自 问答

最近遇到一个需求,大文件上传,一开始使用FormData的格式上传,后台(go大佬)嫌弃解释时间太长,要求换成 octet-stream的格式?! 我懵了许久,以前一直没听说过啊,在网上也没有查到能帮助的资料,然后前端各种修改,最终以前端获取到的 File 对象,直接丢到

$.ajax({
	data:File,
	contentType:flase,
	processData:false
	}) 

然后后台接受到了,速度还挺快。然后我就想使用node来实现一波后台,然后发现用原生的node使用post接受chunk的形式不好使,mutler也不好使,所以请教一下各位有没有这方面的经验或者建议指导学习一下!!!

5 回复

上传的什么格式的文件?

我最近也遇到这个需求,使用的是file,然后append 到 formData 中,也是用的 $.ajax,我的文件小,没啥问题

我猜应该是直接HTTP的请求体部分就是文件内容,下面是一份我两年前做微信支付回调时写的代码,在express中直接用,你改改代码试试看 当时用的express是4.15.2

async function readAll(req: Request) {
  return new Promise<string>(function (resolve, reject) {
    const datas: Buffer[] = [];
    req.on('data', function (data) {
      if (Buffer.isBuffer(data)) {
        datas.push(data);
      } else {
        datas.push(Buffer.from(data));
      }
    });
    req.on('end', function () {
      const str = Buffer.concat(datas).toString();
      resolve(str);
    });
    req.on('error', function (err) {
      reject(err);
    });
  });
}

@weiketa 文件时什么格式,他就会显示什么格式

回到顶部