【问题标题】:How to upload file from the back-end to another back-end?如何将文件从后端上传到另一个后端?
【发布时间】:2021-08-10 07:00:50
【问题描述】:

我正在尝试将文件从另一个后端上传到当前现有的 API。

为此,我试图复制前端正在执行的操作。 创建 FormData,然后将其发送到 API。

但请求似乎挂起... 如果我尝试复制请求快递将控制台日志错误

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 创建表单。

可能出了什么问题?

【问题讨论】:

    标签: node.js browser axios fileapi


    【解决方案1】:

    所以问题出在标题上。 如果没有为 axios 传递 FormData 标头,其他 API 的强大功能会挂起。

    下面的代码让我可以成功地将文件上传到其他 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,
          });
    

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 2021-11-26
      • 2017-06-29
      • 2018-07-24
      • 2022-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      相关资源
      最近更新 更多