Reactjs Nodejs 文件上传 ftp 通过 axios
Reactjs Nodejs file upload ftp via 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 正在运行。只有客户端请求代码有问题。
任何帮助!!!
这是您犯的一个非常新手的错误,可能是因为您不了解 multipart 的工作方式。为了使您的 client-side 代码正常工作,即将 form-data 发送回后端,您需要:
- 要么删除 header 并让浏览器根据您的数据类型为您选择 header
- 或者在使用
'Content-Type': 'multipart/form-data'
的时候,给它加上一个边界
多部分边界看起来像这样,
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryABCDEFGHIJKLMNOPQRSTUVWXYZ'
只需执行以下操作即可解决问题,因为浏览器会处理 header 所需的内容。
axios.post('your-server-url', data).then(....)
我正在尝试在 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 正在运行。只有客户端请求代码有问题。
任何帮助!!!
这是您犯的一个非常新手的错误,可能是因为您不了解 multipart 的工作方式。为了使您的 client-side 代码正常工作,即将 form-data 发送回后端,您需要:
- 要么删除 header 并让浏览器根据您的数据类型为您选择 header
- 或者在使用
'Content-Type': 'multipart/form-data'
的时候,给它加上一个边界
多部分边界看起来像这样,
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryABCDEFGHIJKLMNOPQRSTUVWXYZ'
只需执行以下操作即可解决问题,因为浏览器会处理 header 所需的内容。
axios.post('your-server-url', data).then(....)