我正在尝试在 React 中使用 axios 上传多张图片,但我不知道出了什么问题。首先,我尝试上传单张图片,效果很好。但是对于多张图片我别无选择。
我正在这样创建 FormData:
for (let i = 0; i < images.length; i++) {
formData.append('productPhotos[' + i + ']', images[i]);
}
axios 请求看起来像这样
const config = { headers: { 'Content-Type': 'multipart/form-data' } };
axios
.post(endPoints.createProduct, formData, config)
.then(res => console.log(res))
.catch(err => console.log(err));
我的后端是用 node/express 编写的,我正在使用 multer 进行上传。签名看起来像这样:
app.post("/product", upload.array("productPhotos"), (req, res) => {
我在 PostMan 中尝试了这个后端端点并且上传工作正常,所以错误必须在前端。感谢帮助。
更新 在 formData 中传递多个文件的正确方法:
images.forEach(img => {
formData.append("productPhotos", img)
})
原文由 Jan Maděra 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个完整的工作设置(上面答案的扩展版本)
客户端:
服务器端(快递,节点 - mutler)