express结合multer实现文件上传功能

单文件上传

<!--add.ejs--><form action="/admin/nav/doAdd" method="post" enctype="multipart/form-data">    标题:<input type="text" name="title" id="title"><br><br>    图片:<input type="file" name="pic" id="pic"><br><br>    描述:<textarea name="desc" id="desc" cols="30" rows="10"></textarea><br><br>    <input type="submit" value="提交"></form>
// nav.js文件中const express = require('express')const tools = require('../../model/tools')router.post('/doAdd', tools.multer().single('pic'), (req, res) => {    // 获取表单传过来的数据    res.send({        body: req.body,        file: req.file    })})
// tools.js工具const multer = require('multer')const path = require('path')const sd = require('silly-datetime')const mkdirp = require('mkdirp')let tools = {    /* 封装图片上传 */    multer() {        var storage = multer.diskStorage({            // 配置上传的目录            destination: async (req, file, cb) => {                // 1. 获取当前日期 20200703                let day = sd.format(new Date(), 'YYYYMMDD')                // static/upload/20200703                let dir = path.join('static/upload', day)                // 2. 按照日期生成图片存储目录                await mkdirp(dir)  // mkdirp是一个异步方法                cb(null, dir)            },            // 修改上传后的文件名            filename: function (req, file, cb) {                // 获取上传文件的后缀名                let extname = path.extname(file.originalname)                cb(null, Date.now() + extname)            }        })        var upload = multer({ storage: storage })        return upload    },    md5() { }}module.exports = tools

多文件上传

// user.js多文件上传const express = require('express')const tools = require('../../model/tools')var router = express.Router()router.get('/', (req, res) => {    res.send('用户列表')})router.get('/add', (req, res) => {    res.render('admin/user/add')})// 多文件上传let cpUpload = tools.multer().fields([{ name: 'pic1', maxCount: 1 }, { name: 'pic2', maxCount: 1 }])router.post('/doAdd', cpUpload, (req, res) => {    res.send({        body: req.body,        files: req.files    })})module.exports = router

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月24日
下一篇 2022年7月24日

相关推荐