封装文件上传工具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/564f32631986c7df7e92b0dbrouter.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;
Express采坑系列之上传文件
原文地址:https://www.cnblogs.com/zhou195/p/8708837.html