【发布时间】:2019-08-01 23:58:06
【问题描述】:
目前我正在使用 npm 模块 request 上传具有 application/octet-stream 内容类型的文件。问题是我无法取回响应正文。这是由于一个已知的错误而发生的:https://github.com/request/request/issues/3108
您能否提供一种将文件上传到具有应用程序/八位字节流内容类型的 API 的替代方法?
【问题讨论】:
标签: node.js file-upload
目前我正在使用 npm 模块 request 上传具有 application/octet-stream 内容类型的文件。问题是我无法取回响应正文。这是由于一个已知的错误而发生的:https://github.com/request/request/issues/3108
您能否提供一种将文件上传到具有应用程序/八位字节流内容类型的 API 的替代方法?
【问题讨论】:
标签: node.js file-upload
您是否尝试将文件加载到缓冲区而不是流?我很欣赏在许多情况下流是可取的,但通常只是加载到内存中是可以接受的。我用这种方法没有问题:
const imageBuffer = fs.readFileSync(fileName); // Set filename here..
const options = {
uri: url, /* Set url here. */
body: imageBuffer,
headers: {
'Content-Type': 'application/octet-stream'
}
};
request.post(options, (error, response, body) => {
if (error) {
console.log('Error: ', error);
return;
}
使用流做同样的事情:
const options = {
uri: url, /* Set url here. */
body: fs.createReadStream(fileName),
headers: {
'Content-Type': 'application/octet-stream'
}
};
request.post(options, (error, response, body) => {
if (error) {
console.log('Error: ', error);
return;
}
..
【讨论】: