React axios上传多个文件
我正在尝试在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中尝试了此后端端点,并且可以正常进行上传,因此错误必须在前端。感谢您的帮助。
UPDATE在formData中传递多个文件的正确方法:
images.forEach(img => {
formData.append("productPhotos", img)
})
回答如下:这不是生成密钥的正确方法。您可以尝试这样的事情:
let productimages = [];
for (let i = 0; i < images.length; i++) {
productimages.push(images[i]);
}
formData.append('productPhotos', images);