求助:如何获取请求数据中的二进制文件? - CNode技术社区

求助:如何获取请求数据中的二进制文件?
发布于 7 年前 作者 JarvisQJ 4013 次浏览 来自 问答

我用的是Egg框架,原生的ctx.getFileStream()可以获取到文件流,但是只支持multipart/form-data。 现在我对接的前端只能用application/octet-stream,所以我需要找到办法获取到请求中的二进制文件。

2 回复

可以用第三方解析包,也可以自己直接解析req(原生的nodejs req对象) 比如:

const parse = (req) => {
 return new Promise((resolve, reject) => {
 let chunks = [];
 let size = 0;
 req.on('data', function (chunk) {
 chunks.push(chunk);
 size += chunk.length;
 });
 req.on("end", function () {
 let buffer = Buffer.concat(chunks, size);
 return resolve(buffer);
 });
 req.on('error', function(err) {
 return reject(err);
 })
 });
}

@alwayslyp 谢谢,按照你提供的代码解决了。顺便再问下,有什么第三方解析包,我知道有个busboy,但只能解析multipart/form-data

回到顶部

AltStyle によって変換されたページ (->オリジナル) /