Express踩坑系列之上传文件

封装文件上传工具multerUtil.js

创建util文件夹并在其下创建multerUtil.js

var  multer=require('multer');
var storage = multer.diskStorage({
    //设置上传后文件路径,uploads文件夹会自动创建。
       destination: function (req, file, cb) {
           cb(null, './public/uploads')
      }, 
    /**
     * 给上传文件重命名,获取添加后缀名
     * 参数名 + 文件名 + 时间戳
     * */
     filename: function (req, file, cb) {
         var fileFormat = (file.originalname).split(".");
        
        //  返回文件名
         cb(null, file.fieldname + '_' + fileFormat[0] + '_' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
     }
});  
    //添加配置文件到muler对象。
    var upload = multer({
         storage: storage
   });
   
 //如需其他设置,请参考multer的limits,使用方法如下。
  //var upload = multer({
 //    storage: storage,
 //    limits:{}
 // });
 
//导出对象
module.exports = upload;

POST接口

var express = require('express');
var router = express.Router();
// 引入文件上传工具
var multer  = require('../util/multerUtil');

/* POST提交文件. */
// muilter.single(‘file’), //适用于单文件上传
// muilter.array(‘file’,num), //适用于多文件上传,num为最多上传个数,上传文件的数量可以小于num,
// muilter.fields(fields), //适用于混合上传,比如A类文件1个,B类文件2个
// 详细信息:http://cnodejs.org/topic/564f32631986c7df7e92b0db
router.post('/',multer.single('d'), function(req, res, next) {

  /**
   * 获取参数
   */ 
  var query = req.body;
  /**
   * 获取文件
   */
  var file = req.file;

  console.log('post数据',query,file)

  res.send('hello , world');
});

module.exports = router;
原文地址:https://www.cnblogs.com/zhou195/p/8708837.html