npm install multer
在文件中 引进来
const multer = require("multer");
然后实例化
//上传了之后会临时放在这个目录 ps: 自己创
const upload = multer({
dest: "./public/upload/temp",
});
//所有接口都允许有上传功能
app.use(upload.any());
路由文件 写下面的
要引进fs
const fs = require("fs");
router.post("/upload", (req, res) => {
//检测是否有文件
if (!req.files) {
res.send({
code: 400,
msg: "上传文件不能为空",
});
return;
}
//保存文件
let files = req.files;
let ret_files = [];
for (let file of files) {
//获取名字后缀
let file_ext = file.originalname.substring(
file.originalname.lastIndexOf(".") + 1
);
//使用时间戳作为文件名字
let file_name = new Date().getTime() + "." + file_ext;
// 移动文件并且修改文件名字
fs.renameSync(
process.cwd() + "/public/upload/temp/" + file.filename,
process.cwd() + "/public/upload/" + file_name
);
ret_files.push("/public/upload/" + file_name);
}
res.send({
code: 200,
msg: "ok",
data: ret_files,
});
});
下载
//下载文件 一般用get
router.get("/download", async (req, res) => {
let file_name = req.query.file_name;
let file_path = process.cwd() + "/public/upload/" + file_name;
res.download(file_path);
});
运行之后 去游览器
输入网址
localhost:8000/test/download?file_name=文件名.jpg