Javascript 如何使用vue.js和multer上载多个文件?

Javascript 如何使用vue.js和multer上载多个文件?,javascript,express,vue.js,multer,Javascript,Express,Vue.js,Multer,我可以使用multer上传单个文件。但是当涉及到多个文件时,它将不再工作,并且没有文件被multer捕获 我通过formData.append()发送文件。但它只上传一个文件 Vue组件 const formData = new FormData(); formData.append("productImg", this.imgFile); this.$store.dispatch(POST_PRODUCT_IMAGE, formData) .then((response) =>

我可以使用multer上传单个文件。但是当涉及到多个文件时,它将不再工作,并且没有文件被multer捕获

我通过formData.append()发送文件。但它只上传一个文件

Vue组件

const formData = new FormData();
formData.append("productImg", this.imgFile);
this.$store.dispatch(POST_PRODUCT_IMAGE, formData)
    .then((response) => {
        console.log(response.data);
    })
    .catch(error => {
        console.log(error);
    })
服务器文件

const uploadPath = path.join(__dirname, '/../../public/uploads');
var storage = multer.diskStorage({
    destination: (req, file, callback) => {
        callback(null, uploadPath + "/garbage/productImg");
    },
    filename: (req, file, callback) => {
        var newName = Date.now() + "_" + file.originalname;
        callback(null, newName);
    }
});

const upload = multer({
    storage: storage
});

productRouter.post('/uploadProductImage', upload.any(), async (req, res) => { // Some Code })
我也是

productRouter.post('/uploadProductImage', array('productImg[]', 6), async (req, res) => { // Some Code })

我想一次上传多个文件到我指定的文件夹。

最后我找到了一个非常愚蠢的解决方案

在Vue组件文件中,我只是在外接程序formData之前使用一个循环。像这样

Vue组件

const formData=new formData();
//formData.append(“productImg”,this.imgFile);//老的
对于(让index=0;index{
console.log(response.data);
})
.catch(错误=>{
console.log(错误);
})
const formData = new FormData();
// formData.append("productImg", this.imgFile); // OLD ONE
for (let index = 0; index < this.imgFile.length; index++) { //NEW ONE
  let file = this.imgFile[index];
  formData.append("productImg["+index+"]", file);
}
this.$store.dispatch(POST_PRODUCT_IMAGE, formData)
    .then((response) => {
        console.log(response.data);
    })
    .catch(error => {
        console.log(error);
    })