如何从后端上传文件到另一个后端?
How to upload file from the back-end to another back-end?
我正在尝试将文件从另一个后端上传到当前存在的 API。
为此,我试图复制前端正在做的事情。
创建 FormData 然后将其发送到 API.
但是请求好像挂了...
如果我尝试复制请求 express 将控制台记录错误
Error: Request aborted
at IncomingMessage.<anonymous> (C:\Users\TCP_BCP\node_modules\formidable\lib\incoming_form.js:122:19)
at IncomingMessage.emit (events.js:314:20)
at IncomingMessage.EventEmitter.emit (domain.js:506:15)
at abortIncoming (_http_server.js:533:9)
at socketOnEnd (_http_server.js:549:5)
at Socket.emit (events.js:326:22)
at Socket.EventEmitter.emit (domain.js:483:12)
at endReadableNT (_stream_readable.js:1241:12)
我知道如果我尝试执行新请求,旧请求可能会中止。
但是为什么请求会挂起?目标文件较小(500kb +-)。
在前端会用到 $(".form").ajaxSubmit
在后端,我正在尝试使用 FormData 创建表单。
有什么问题吗?
所以问题出在 headers。
强大的其他 API 会在不为 axios 传递 FormData headers 的情况下挂起。
下面的代码让我成功地将文件上传到另一个 API。
const data = await fs.readFile(zipPath);
const form = new FormData();
form.append("file", data, zipName);
const headers = form.getHeaders();
Axios.defaults.headers.cookie = cookies;
await Axios({
method: "POST",
url: endpoint,
headers: {
...headers,
cookie: cookies,
},
data: form,
});
我正在尝试将文件从另一个后端上传到当前存在的 API。
为此,我试图复制前端正在做的事情。 创建 FormData 然后将其发送到 API.
但是请求好像挂了... 如果我尝试复制请求 express 将控制台记录错误
Error: Request aborted
at IncomingMessage.<anonymous> (C:\Users\TCP_BCP\node_modules\formidable\lib\incoming_form.js:122:19)
at IncomingMessage.emit (events.js:314:20)
at IncomingMessage.EventEmitter.emit (domain.js:506:15)
at abortIncoming (_http_server.js:533:9)
at socketOnEnd (_http_server.js:549:5)
at Socket.emit (events.js:326:22)
at Socket.EventEmitter.emit (domain.js:483:12)
at endReadableNT (_stream_readable.js:1241:12)
我知道如果我尝试执行新请求,旧请求可能会中止。
但是为什么请求会挂起?目标文件较小(500kb +-)。
在前端会用到 $(".form").ajaxSubmit
在后端,我正在尝试使用 FormData 创建表单。
有什么问题吗?
所以问题出在 headers。 强大的其他 API 会在不为 axios 传递 FormData headers 的情况下挂起。
下面的代码让我成功地将文件上传到另一个 API。
const data = await fs.readFile(zipPath);
const form = new FormData();
form.append("file", data, zipName);
const headers = form.getHeaders();
Axios.defaults.headers.cookie = cookies;
await Axios({
method: "POST",
url: endpoint,
headers: {
...headers,
cookie: cookies,
},
data: form,
});