使用 multer 随机上传文件 & node.js api

Random file upload with multer & node.js api

用于上传任意名称或任意数量的图片。

目前我正在我的项目中使用 multer 处理文件上传。 当我知道字段名称时,我可以处理多个文件上传。我将每个文件的路径存储在 MongoDB 中,并且 mongoose.Below 我与 know field-name 分享了知识,例如 image & images

在路由器中:

      uploadImages.fields([
                   { name: 'image',  maxCount: 1 },
                   { name: 'images', maxCount: 8 }
                ])

现在的问题是我有 随机文件 并且 我不知道所有的字段名称 。就像可以有 10 个字段,每个字段可以有多个文件, 如横幅、滑块、徽标、图像、封面等。 我该如何处理这种情况?当我不知道字段名称和每个字段中的图像数量时

所以答案很简单。我在用咕噜声。 muter 有 any() 字段。

any() :接受通过线路传输的所有文件。文件数组将存储在 req.files

它处理所有带有任何字段名称的文件:

const fileUpload = multer({
storage: multer.diskStorage ({
    destination: (req, file, cb)=>{
        cb(null, 'uploads/slider')
    },
    filename : (req, file, cb) =>{
        cb(null, file.filename)
    }
})
})

module.exports = fileUpload

现在在路由器中:

const upload = require('../middleware/slider')
router.post('/', upload.any(),  ......)
upload.any()

获取controller中的所有文件存放数据库中的路径

exports.controller = async (req, res, next)=>{
    const files = req.files
    console.log(files)
    // files will contain an array of file, all the file you uploaded.
    //to get the path of each
    let sliders = []

    if(files){
        sliders =  files.map(file=>{
            return {field_name:file.fieldname , path :file.path }
        })
    }
    console.log(sliders) 
}

所以我是如何解决这个问题的。 any() 归档拯救了我的一天。