mirror of
https://github.com/pure-admin/pure-admin-backend.git
synced 2025-04-24 15:27:17 +08:00
perf: 支持多文件上传
This commit is contained in:
parent
4121375378
commit
f31bf052a1
2
.gitignore
vendored
2
.gitignore
vendored
@ -83,4 +83,4 @@ docs
|
||||
|
||||
.DS_Store
|
||||
upload_tmp
|
||||
public/images/
|
||||
public/files/
|
@ -9,6 +9,7 @@ import getFormatDate from "../utils/date";
|
||||
import { connection } from "../utils/mysql";
|
||||
import { Request, Response } from "express";
|
||||
import { createMathExpr } from "svg-captcha";
|
||||
|
||||
const utils = require("@pureadmin/utils");
|
||||
|
||||
/** 保存验证码 */
|
||||
@ -390,24 +391,51 @@ const searchVague = async (req: Request, res: Response) => {
|
||||
// express-swagger-generator中没有文件上传文档写法,所以请使用postman调试
|
||||
const upload = async (req: Request, res: Response) => {
|
||||
// 文件存放地址
|
||||
var des_file = "./public/images/" + req.files[0].originalname;
|
||||
fs.readFile(req.files[0].path, function (err, data) {
|
||||
fs.writeFile(des_file, data, function (err) {
|
||||
const des_file: any = (index: number) =>
|
||||
"./public/files/" + req.files[index].originalname;
|
||||
let filesLength = req.files.length as number;
|
||||
let result = [];
|
||||
|
||||
function asyncUpload() {
|
||||
return new Promise((resolve, rejects) => {
|
||||
(req.files as Array<any>).forEach((ev, index) => {
|
||||
fs.readFile(req.files[index].path, function (err, data) {
|
||||
fs.writeFile(des_file(index), data, function (err) {
|
||||
if (err) {
|
||||
res.json({
|
||||
success: false,
|
||||
data: { message: Message[10] },
|
||||
});
|
||||
rejects(err);
|
||||
} else {
|
||||
while (filesLength > 0) {
|
||||
result.push({
|
||||
filename: req.files[filesLength - 1].originalname,
|
||||
filepath: utils.getAbsolutePath(des_file(filesLength - 1)),
|
||||
});
|
||||
filesLength--;
|
||||
}
|
||||
if (filesLength === 0) resolve(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
asyncUpload()
|
||||
.then((fileList) => {
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
message: Message[11],
|
||||
filename: req.files[0].originalname,
|
||||
filepath: utils.getAbsolutePath(des_file),
|
||||
fileList,
|
||||
},
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
res.json({
|
||||
success: false,
|
||||
data: {
|
||||
message: Message[10],
|
||||
fileList: [],
|
||||
},
|
||||
});
|
||||
});
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user