123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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
|