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
|
.DS_Store
|
||||||
upload_tmp
|
upload_tmp
|
||||||
public/images/
|
public/files/
|
@ -9,6 +9,7 @@ import getFormatDate from "../utils/date";
|
|||||||
import { connection } from "../utils/mysql";
|
import { connection } from "../utils/mysql";
|
||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
import { createMathExpr } from "svg-captcha";
|
import { createMathExpr } from "svg-captcha";
|
||||||
|
|
||||||
const utils = require("@pureadmin/utils");
|
const utils = require("@pureadmin/utils");
|
||||||
|
|
||||||
/** 保存验证码 */
|
/** 保存验证码 */
|
||||||
@ -390,24 +391,51 @@ const searchVague = async (req: Request, res: Response) => {
|
|||||||
// express-swagger-generator中没有文件上传文档写法,所以请使用postman调试
|
// express-swagger-generator中没有文件上传文档写法,所以请使用postman调试
|
||||||
const upload = async (req: Request, res: Response) => {
|
const upload = async (req: Request, res: Response) => {
|
||||||
// 文件存放地址
|
// 文件存放地址
|
||||||
var des_file = "./public/images/" + req.files[0].originalname;
|
const des_file: any = (index: number) =>
|
||||||
fs.readFile(req.files[0].path, function (err, data) {
|
"./public/files/" + req.files[index].originalname;
|
||||||
fs.writeFile(des_file, data, function (err) {
|
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) {
|
if (err) {
|
||||||
res.json({
|
rejects(err);
|
||||||
success: false,
|
|
||||||
data: { message: Message[10] },
|
|
||||||
});
|
|
||||||
} else {
|
} 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({
|
res.json({
|
||||||
success: true,
|
success: true,
|
||||||
data: {
|
data: {
|
||||||
message: Message[11],
|
message: Message[11],
|
||||||
filename: req.files[0].originalname,
|
fileList,
|
||||||
filepath: utils.getAbsolutePath(des_file),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
})
|
||||||
|
.catch(() => {
|
||||||
|
res.json({
|
||||||
|
success: false,
|
||||||
|
data: {
|
||||||
|
message: Message[10],
|
||||||
|
fileList: [],
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user