const multer = require('multer') const config = require('./config.js') const utils = require('./index') //上传的文件保存在 upload const storage = multer.diskStorage({ //存储的位置 destination(req, file, cb) { cb(null, config.fileSite) }, //文件名字的确定 multer默认帮我们取一个没有扩展名的文件名,因此需要我们自己定义 filename(req, file, cb) { let math = Math.random() math = math.toString().replace('.', '') //随机字符串 cb(null, `${Date.now()}${math}-${file.originalname}`) } }) //传入storage 除了这个参数我们还可以传入dest等参数 let upload = multer({ storage }).array(config.fileName) //上传总函数 let fileEvent = (req, res) => { return new Promise((resolve, reject) => { upload(req, res, function (err) { if (err) return res.send(utils.returnData({ code: -1, msg: '上传文件错误~', req, err })) try { //循环处理 let imgPath = [] req.files.forEach(function (i) { const regex = /^(.+)\.[^.]+$/ const regexRes = i.originalname.match(regex) let name = '' if (regexRes) name = regexRes[1] //获取临时文件的存储路径 imgPath.push({ url: `${config.fileHost}/${i.filename}`, name, originalname: i.originalname, filename: i.filename, params: req.body }) // console.log("i.path:",i.path) }) resolve(imgPath) } catch (err) { res.send(utils.returnData({ code: -1, msg: '上传文件错误~', req, err })) } }) }) } module.exports = fileEvent