前端上传非FormData格式的文件,node怎么接收处理
最近遇到一个需求,大文件上传,一开始使用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 文件时什么格式,他就会显示什么格式