const express = require("express");
const path = require("path");
const hash = require("object-hash");
const sd = require("silly-datetime");
const mkdirp = require("mkdirp");
var multer = require("multer");
// var upload = multer({ dest: "static/uploads" });
var storage = multer.diskStorage({
destination: async function (req, file, cb) {
//1.获取当前日期
let day = sd.format(new Date(), "YYYYMMDD");
let dir = path.join("static/uploads", day);
//2.按照日期生成存储目录
await mkdirp(dir);
cb(null, dir);
},
filename: function (req, file, cb) {
let extname = path.extname(file.originalname);
cb(null, hash(file.originalname) + extname);
// cb(null, file.originalname.split(".")[0] + Date.now() + extname);
},
});
var upload = multer({ storage });
var router = express.Router();
router.get("/add", (req, res) => {
res.render("admin/user/add");
});
router.post("/doAdd", upload.array("pic1", 3), (req, res) => {
res.send({
body: req.body,
files: req.files,
});
});
后端代码
<form
action="/admin/user/doAdd"
method="post"
enctype="multipart/form-data"
>
<input type="text" name="title" id="title" /><br /><br />
图片1 <input type="file" name="pic1" id="pic1" /><br /><br />
<!-- 图片2 <input type="file" name="pic2" id="pic2" /><br /><br /> -->
<textarea name="desc" id="desc" cols="30" rows="10"></textarea
><br /><br />
<input type="submit" value="提交" />
</form>
后端渲染
页面
<input type="file" name="pic1" id="pic1" /> 这个元素加个属性 multiple
如 <input type="file" multiple="multiple"
/>