1.安装
cnpm install multer --save
2.单文件上传
const path= require("path");
const multer = require("multer");
let tools = {
multer(){
const storage = multer.diskStorage({
destination: fuction(req, file, callback){
callback(null, "static/upload");
},
filename: fuction(req, file, callback){
let extName = path.extname(file.originalname);
callback(null, file.filename + "-" + Date.now() + extName)
}
});
const upload = multer({storage: storage});
return upload
}
}
module.exports = tools;
const express = require("express");
const tools = require("./module/tools");
const app = express();
app.post('/profile', tools.multer().single("avatar"), fuction(req, res){
res.send(req.file.originalname);
})
<form action="/profile" method="post", enctype="multipar/form-data">
<input type="file" name="avatar">
</form>
3.根据日期生成目录
const sd = require("silly-datetime");
const mkdirp = require("mkdirp");
const storage = multer.diskStorage({
destination: async (req, file, callback){
let day = sd.format(new Date, "YYYYMMDD");
let dir = path.join("static/upload", day);
await mkdirp(dir);
callback(null, dir);
},
filename: fuction(req, file, callback){
let extName = path.extname(file.originalname);
callback(null, file.filename + "-" + Date.now() + extName)
}
});
const upload = multer({storage: storage});
4.多文件上传
const express = require("express");
const tools = require("./module/tools");
const app = express();
const cpUpload = tools.multer().fields([{ name: 'avatar1', maxCount: 1 }, { name: 'avatar2', maxCount: 1 }])
app.post('/profile', cpUpload, fuction(req, res){
res.send(req.files);
})
<form action="/profile" method="post", enctype="multipar/form-data">
<input type="file" name="avatar1">
<input type="file" name="avatar2">
</form>