无法使用 Multer、React Native 和 Axios 上传文件
Can't upload file with Multer, React Native and Axios
我知道有成千上万个这样的问题,但是 none 的解决方案对我有用:
- 更改为获取 Api
- 在 formData 中使用格式 {uri: ..., type: ..., name: ...}
我也注意到我不能在 "data" axios 的 属性 中直接发送 formData(当使用 Axios({...}) 时),因为 formData 对象有一个属性 调用“._parts”,所以我必须做:
let formData = new FormData()
formData('image', {uri: imagePicker.uri, name: 'some_name.jpeg', type: 'image/jpeg'})
formData('data', {name: 'Andrea'})
let xmlHttp = await Axios({
method: 'POST',
url: `url...`,
data: formData._parts,
headers: {
Authorization: `Bearer ${_token}`,
'Content-Type': 'multipart/form-data',
},
} ).catch(error => {
throw error
});
然后,在 Node 中,我得到这个:
req.body -> [Object: null prototype] {}
req.file -> undefined
upload.single("image"),在 router.post 和 multerS3 中。
有什么想法吗?谢谢
我在 Axios 上遇到了同样的问题 6 天 :D,我得到的 Multer 没有问题。
但是在你留下的代码中 data
应该是 formData
而不是 formData._parts
。
如果它不能解决您的问题,请检查它我强烈建议您使用 https://github.com/joltup/rn-fetch-blob ,因为 Axios 包有一些问题,您也可以从 github 问题中检查它。
对我来说,使用 RNFetchBlob
完成了工作,希望对我有所帮助
我知道有成千上万个这样的问题,但是 none 的解决方案对我有用:
- 更改为获取 Api
- 在 formData 中使用格式 {uri: ..., type: ..., name: ...}
我也注意到我不能在 "data" axios 的 属性 中直接发送 formData(当使用 Axios({...}) 时),因为 formData 对象有一个属性 调用“._parts”,所以我必须做:
let formData = new FormData()
formData('image', {uri: imagePicker.uri, name: 'some_name.jpeg', type: 'image/jpeg'})
formData('data', {name: 'Andrea'})
let xmlHttp = await Axios({
method: 'POST',
url: `url...`,
data: formData._parts,
headers: {
Authorization: `Bearer ${_token}`,
'Content-Type': 'multipart/form-data',
},
} ).catch(error => {
throw error
});
然后,在 Node 中,我得到这个:
req.body -> [Object: null prototype] {}
req.file -> undefined
upload.single("image"),在 router.post 和 multerS3 中。
有什么想法吗?谢谢
我在 Axios 上遇到了同样的问题 6 天 :D,我得到的 Multer 没有问题。
但是在你留下的代码中 data
应该是 formData
而不是 formData._parts
。
如果它不能解决您的问题,请检查它我强烈建议您使用 https://github.com/joltup/rn-fetch-blob ,因为 Axios 包有一些问题,您也可以从 github 问题中检查它。
对我来说,使用 RNFetchBlob
完成了工作,希望对我有所帮助