This commit is contained in:
zhishi 2026-03-29 02:26:33 +08:00
commit 2495567c66
17 changed files with 20 additions and 9 deletions

View File

@ -1,4 +1,4 @@
name name
123123 123123水电费水电费水电费水电费水电费
123123123 123123123
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 u from "@/utils";
import fs from "fs"; import fs from "fs";
import { z } from "zod"; import { z } from "zod";
import { success } from "@/lib/responseFormat"; import { error, success } from "@/lib/responseFormat";
import { validateFields } from "@/middleware/middleware"; import { validateFields } from "@/middleware/middleware";
const router = express.Router(); const router = express.Router();
@ -18,7 +18,7 @@ export default router.post(
// 安全校验:不允许包含路径分隔符、纯数字,防止越级删除或误删项目目录 // 安全校验:不允许包含路径分隔符、纯数字,防止越级删除或误删项目目录
if (name.includes("/") || name.includes("\\") || name === "." || name === ".." || /^\d+$/.test(name)) { if (name.includes("/") || name.includes("\\") || name === "." || name === ".." || /^\d+$/.test(name)) {
res.status(400).send({ error: "非法的名称" }); res.status(400).send(error("名称不能包含路径分隔符或为纯数字"));
return; return;
} }
@ -37,7 +37,7 @@ export default router.post(
res.status(200).send(success({ message: "删除成功" })); res.status(200).send(success({ message: "删除成功" }));
} catch (err) { } 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 express from "express";
import u from "@/utils"; import u from "@/utils";
import { success } from "@/lib/responseFormat"; import { error, success } from "@/lib/responseFormat";
import fs from "fs"; import fs from "fs";
import path from "path"; import path from "path";
import { validateFields } from "@/middleware/middleware"; import { validateFields } from "@/middleware/middleware";
@ -30,7 +30,7 @@ export default router.post(
}; };
if (/^\d+$/.test(name)) { if (/^\d+$/.test(name)) {
res.status(400).send({ error: "名称不能为纯数字" }); res.status(400).send(error("名称不能为纯数字"));
return; return;
} }
@ -80,7 +80,7 @@ export default router.post(
existingFiles = allFiles.filter((f) => /\.(png|jpe?g|gif|webp|svg)$/i.test(f)); existingFiles = allFiles.filter((f) => /\.(png|jpe?g|gif|webp|svg)$/i.test(f));
} catch {} } 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) { for (const file of existingFiles) {
if (!retainedFileNames.has(file)) { if (!retainedFileNames.has(file)) {
@ -89,7 +89,7 @@ export default router.post(
} }
for (const item of images) { 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()); res.status(200).send(success());