单文件上传

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

多文件上传

  1. // user.js多文件上传
  2. const express = require('express')
  3. const tools = require('../../model/tools')
  4. var router = express.Router()
  5. router.get('/', (req, res) => {
  6. res.send('用户列表')
  7. })
  8. router.get('/add', (req, res) => {
  9. res.render('admin/user/add')
  10. })
  11. // 多文件上传
  12. let cpUpload = tools.multer().fields([{ name: 'pic1', maxCount: 1 }, { name: 'pic2', maxCount: 1 }])
  13. router.post('/doAdd', cpUpload, (req, res) => {
  14. res.send({
  15. body: req.body,
  16. files: req.files
  17. })
  18. })
  19. module.exports = router