Fix: TypeScript-Fehler im multer Upload-Endpoint
- @types/multer zu devDependencies hinzugefügt (fehlte → TS7016) - Explizite Callback-Typen in diskStorage/fileFilter (TS7006) - Express.Multer.File durch lokalen MulterFile-Type ersetzt (TS2694) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
52c86240af
commit
db9a18b367
2 changed files with 9 additions and 6 deletions
|
|
@ -24,6 +24,7 @@
|
|||
"devDependencies": {
|
||||
"@types/cors": "^2.8.17",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/multer": "^1.4.12",
|
||||
"@types/node": "^20.12.12",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.5.4"
|
||||
|
|
|
|||
|
|
@ -1030,9 +1030,11 @@ app.post('/api/admin/sounds/rename', requireAdmin, (req: Request, res: Response)
|
|||
});
|
||||
|
||||
// --- Datei-Upload (Drag & Drop) ---
|
||||
type MulterFile = { fieldname: string; originalname: string; encoding: string; mimetype: string; destination: string; filename: string; path: string; size: number; };
|
||||
|
||||
const uploadStorage = multer.diskStorage({
|
||||
destination: (_req, _file, cb) => cb(null, SOUNDS_DIR),
|
||||
filename: (_req, file, cb) => {
|
||||
destination: (_req: any, _file: any, cb: (e: null, dest: string) => void) => cb(null, SOUNDS_DIR),
|
||||
filename: (_req: any, file: { originalname: string }, cb: (e: null, name: string) => void) => {
|
||||
const safe = file.originalname.replace(/[<>:"/\\|?*\x00-\x1f]/g, '_');
|
||||
const { name, ext } = path.parse(safe);
|
||||
let finalName = safe;
|
||||
|
|
@ -1046,7 +1048,7 @@ const uploadStorage = multer.diskStorage({
|
|||
});
|
||||
const uploadMulter = multer({
|
||||
storage: uploadStorage,
|
||||
fileFilter: (_req, file, cb) => {
|
||||
fileFilter: (_req: any, file: { originalname: string }, cb: (e: null, ok: boolean) => void) => {
|
||||
const ext = path.extname(file.originalname).toLowerCase();
|
||||
cb(null, ext === '.mp3' || ext === '.wav');
|
||||
},
|
||||
|
|
@ -1054,9 +1056,9 @@ const uploadMulter = multer({
|
|||
});
|
||||
|
||||
app.post('/api/upload', requireAdmin, (req: Request, res: Response) => {
|
||||
uploadMulter.array('files', 20)(req, res, async (err) => {
|
||||
if (err) return res.status(400).json({ error: err.message ?? 'Upload fehlgeschlagen' });
|
||||
const files = (req as any).files as Express.Multer.File[] | undefined;
|
||||
uploadMulter.array('files', 20)(req, res, async (err: any) => {
|
||||
if (err) return res.status(400).json({ error: err?.message ?? 'Upload fehlgeschlagen' });
|
||||
const files = (req as any).files as MulterFile[] | undefined;
|
||||
if (!files?.length) return res.status(400).json({ error: 'Keine gültigen Dateien (nur MP3/WAV)' });
|
||||
const saved = files.map(f => ({ name: f.filename, size: f.size }));
|
||||
// Normalisierung im Hintergrund starten
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue