Reactjs Nodejs文件通过axios上传ftp

时间:2018-01-18 08:21:51

标签: javascript node.js reactjs ftp axios

我试图在ftp上使用React Dropzone上传文件,前端是Reactjs + AXIOS,后端是Nodejs + connect-multiparty。 问题是当我使用AXIOS通过前端发送文件时,我没有在请求中获取服务器上的文件。 我使用react-axios上传文件的代码是

let data = new FormData()
data.append('file', file)    
var setting = {
    method: 'post',
    url: 'my-server-url',
    data:data,
    headers: {
        'Content-Type': 'multipart/form-data'
    },   
}
var response = axios(setting).then(response => { return response.data })
    .catch(response => response = {
        success: 500,
        message: "Your submission could not be completed. Please Try Again!",
        data: ""
    });

使用邮递员时,一切正常。服务器端api正在工作。客户端请求代码唯一的问题。

任何帮助!!!

1 个答案:

答案 0 :(得分:0)

这可能是因为你不理解multipart的工作方式,这是你犯的一个非常新的错误。要使您的客户端代码正常工作,即将表单数据发送回后端,您需要:

  • 删除标题,让浏览器根据您的数据类型为您选择标题
  • 或者在使用'Content-Type': 'multipart/form-data'时,为其添加边界

多部分边界看起来像这样,

 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryABCDEFGHIJKLMNOPQRSTUVWXYZ'

只需执行以下操作即可解决问题,因为浏览器会处理所需的标题。

axios.post('your-server-url', data).then(....)