【问题标题】:axios request not working with form data on external apiaxios 请求不适用于外部 api 上的表单数据
【发布时间】:2021-04-12 07:05:58
【问题描述】:

我有一个如下所示的外部 API 请求。

现在我需要将这个邮递员 API 写入到 axios API 调用中。但是我尝试了很多替代方法,但似乎没有任何效果。

下面的代码解释了我尝试做的当前代码。

const url = `${this._url}/rest/v1.0/files?project_id=${projectId}`;
const response = await Axios.default.post(
  url,
  {
    file: {
      parent_id: +parentId,
      data: file,
    },
  },
  {
    headers: {
      Authorization: `Bearer ${updatedToken}`,
      'Content-Type': 'multipart/form-data',
      'Procore-Company-Id': company.id,
    },
    maxBodyLength: Infinity,
    maxContentLength: Infinity,
  }
);

【问题讨论】:

  • 也这样做了,但它似乎也不起作用,我需要一个关于如何使用 formdata 上传的语法

标签: node.js express axios multipartform-data


【解决方案1】:

使用form-data

const form = new FormData();
form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') );

// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders`
const formHeaders = form.getHeaders();

axios.post('http://example.com', form, {
  headers: {
    ...formHeaders,
  },
})
.then(response => response)
.catch(error => error)

【讨论】:

  • 但问题是我正在使用 multer 来获取文件,并且它现在没有文件路径,只有带有缓冲区数据的整个文件
  • @Jithin append 也可以与缓冲区一起使用form.append('my_file_from_buffer', <your multer buffer>, { filename: myfile.jpeg, })
猜你喜欢
  • 2020-07-28
  • 2021-04-27
  • 2022-01-16
  • 2019-10-20
  • 1970-01-01
  • 2020-06-13
  • 2017-07-17
  • 2019-04-11
  • 1970-01-01
相关资源
最近更新 更多