修复代码

This commit is contained in:
小帅 2026-03-29 02:23:03 +08:00
parent 3a3b756e14
commit bb6c07d6d3
17 changed files with 20 additions and 9 deletions

View File

@ -1,4 +1,4 @@
name
123123
123123水电费水电费水电费水电费水电费
123123123
123123123

View File

@ -0,0 +1 @@
1212水电费水电费萨芬的水电费

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -0,0 +1 @@
1212

View File

@ -2,7 +2,7 @@ import express from "express";
import u from "@/utils";
import fs from "fs";
import { z } from "zod";
import { success } from "@/lib/responseFormat";
import { error, success } from "@/lib/responseFormat";
import { validateFields } from "@/middleware/middleware";
const router = express.Router();
@ -18,7 +18,7 @@ export default router.post(
// 安全校验:不允许包含路径分隔符、纯数字,防止越级删除或误删项目目录
if (name.includes("/") || name.includes("\\") || name === "." || name === ".." || /^\d+$/.test(name)) {
res.status(400).send({ error: "非法的名称" });
res.status(400).send(error("名称不能包含路径分隔符或为纯数字"));
return;
}
@ -37,7 +37,7 @@ export default router.post(
res.status(200).send(success({ message: "删除成功" }));
} catch (err) {
res.status(500).send({ error: String(err) });
res.status(500).send(error(u.error(err).message || "删除失败"));
}
},
);

View File

@ -1,6 +1,6 @@
import express from "express";
import u from "@/utils";
import { success } from "@/lib/responseFormat";
import { error, success } from "@/lib/responseFormat";
import fs from "fs";
import path from "path";
import { validateFields } from "@/middleware/middleware";
@ -30,7 +30,7 @@ export default router.post(
};
if (/^\d+$/.test(name)) {
res.status(400).send({ error: "名称不能为纯数字" });
res.status(400).send(error("名称不能为纯数字"));
return;
}
@ -80,7 +80,7 @@ export default router.post(
existingFiles = allFiles.filter((f) => /\.(png|jpe?g|gif|webp|svg)$/i.test(f));
} catch {}
const retainedFileNames = new Set(images.filter((item) => item.includes("http")).map((url) => path.basename(new URL(url).pathname)));
const retainedFileNames = new Set(images.filter((item) => item.startsWith("http")).map((url) => path.basename(new URL(url).pathname)));
for (const file of existingFiles) {
if (!retainedFileNames.has(file)) {
@ -89,7 +89,7 @@ export default router.post(
}
for (const item of images) {
if (!item.includes("http")) await u.oss.writeFile(`${name}/${u.uuid()}.jpg`, item);
if (!item.startsWith("http")) await u.oss.writeFile(`${name}/${u.uuid()}.jpg`, item);
}
res.status(200).send(success());