我有一个 API 端点,允许客户端将他们的 csv 发布到我们的服务器,然后将其发布到其他服务器。我已经完成了将上传文件保存到服务器的服务器部分,但我无法完成另一部分。我不断收到错误 { message: 'File not found', code: 400 }
这可能意味着文件永远不会到达服务器。我正在使用axios作为代理,有人知道如何完成吗?谢谢。
// file = uploaded file
const form_data = new FormData();
form_data.append("file", fs.createReadStream(file.path));
const request_config = {
method: "post",
url: url,
headers: {
"Authorization": "Bearer " + access_token,
"Content-Type": "multipart/form-data"
},
data: form_data
};
return axios(request_config);
更新
正如 axios doc 所述,我尝试调用的 API 需要一个文件
//
data
是作为请求体发送的数据 // 仅适用于请求方法 ‘PUT’、’POST’ 和 ‘PATCH’ // 没有时transformRequest
是set,必须是以下类型之一: // - 字符串、普通对象、ArrayBuffer、ArrayBufferView、URLSearchParams // - 仅限浏览器:FormData、File、Blob // - 仅限节点:Stream、Buffer
有没有办法让axios整体发送文件?谢谢。
原文由 Tri Nguyen 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为 createReadStream 是您的问题,因为它是异步的。尝试这个。由于 createReadStream 扩展了事件发射器,我们可以“监听”它何时完成/结束。