|
@@ -26,6 +26,19 @@ const upload = multer({
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+// 单图片上传(logo/slogon 等手动替换)
|
|
|
|
|
+const uploadImage = multer({
|
|
|
|
|
+ storage: multer.memoryStorage(),
|
|
|
|
|
+ limits: { fileSize: 5 * 1024 * 1024 },
|
|
|
|
|
+ fileFilter: (_req, file, cb) => {
|
|
|
|
|
+ if (file.mimetype.startsWith("image/")) {
|
|
|
|
|
+ cb(null, true);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ cb(new Error("Only image files are allowed"));
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 从 zip buffer 中提取素材文件、校验、写入磁盘、更新 DB。
|
|
* 从 zip buffer 中提取素材文件、校验、写入磁盘、更新 DB。
|
|
|
* 文件上传和 URL 导入共用此逻辑。
|
|
* 文件上传和 URL 导入共用此逻辑。
|
|
@@ -212,7 +225,7 @@ export function assetsRouter(db: Database.Database, storageDir: string): Router
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// POST /api/v1/creatives/:id/assets/:key — 上传单个素材文件(手动替换)
|
|
// POST /api/v1/creatives/:id/assets/:key — 上传单个素材文件(手动替换)
|
|
|
- router.post("/creatives/:id/assets/:key", upload.single("file"), (req, res) => {
|
|
|
|
|
|
|
+ router.post("/creatives/:id/assets/:key", uploadImage.single("file"), (req, res) => {
|
|
|
try {
|
|
try {
|
|
|
const creativeId = req.params.id as string;
|
|
const creativeId = req.params.id as string;
|
|
|
const fileKey = req.params.key as string;
|
|
const fileKey = req.params.key as string;
|