Changeset fbc8628 in Klonkt for src/routes/admin-audio.js
- Timestamp:
- 06/18/2026 08:48:18 AM (3 months ago)
- Branches:
- main
- Children:
- 91d948c
- Parents:
- 03af7f8
- File:
-
- 1 edited
-
src/routes/admin-audio.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/admin-audio.js
r03af7f8 rfbc8628 37 37 const ALLOWED_AUDIO_EXT = new Set(['.mp3', '.m4a', '.mp4', '.aac', '.oga', '.ogg', '.opus', '.flac', '.wav', '.webm']); 38 38 const ALLOWED_COVER_EXT = new Set(['.jpg', '.jpeg', '.png', '.webp', '.gif']); 39 const MAX_AUDIO_BYTES = 50 * 1024 * 1024; // 50 MB 40 const MAX_COVER_BYTES = 5 * 1024 * 1024; // 5 MB 39 const MAX_AUDIO_BYTES = 50 * 1024 * 1024; // 50 MB — gecomprimeerde formaten (mp3/m4a/ogg/…) 40 const MAX_WAV_BYTES = 100 * 1024 * 1024; // 100 MB — WAV is ongecomprimeerd, dus ruimer 41 const MAX_COVER_BYTES = 5 * 1024 * 1024; // 5 MB 42 43 // Per-bestand bovengrens op basis van extensie. multer's globale limiet is de 44 // hoogste (WAV); de echte controle per type gebeurt in de upload-handler. 45 const audioByteLimitFor = (ext) => (ext.toLowerCase() === '.wav' ? MAX_WAV_BYTES : MAX_AUDIO_BYTES); 41 46 42 47 // Multer routes audio + cover into separate dirs based on field name. … … 53 58 const upload = multer({ 54 59 storage, 55 limits: { fileSize: MAX_ AUDIO_BYTES }, // upper bound — per-field check below60 limits: { fileSize: MAX_WAV_BYTES }, // hoogste bovengrens (WAV) — per-type check in de handler 56 61 fileFilter: (req, file, cb) => { 57 62 const ext = path.extname(file.originalname).toLowerCase(); … … 93 98 success: req.query.success || null, 94 99 maxBytesMb: Math.round(MAX_AUDIO_BYTES / 1024 / 1024), 100 maxWavMb: Math.round(MAX_WAV_BYTES / 1024 / 1024), 95 101 }); 96 102 }); … … 119 125 if (coverFile) try { fs.unlinkSync(coverFile.path); } catch {} 120 126 return fail(400, 'missing audio file'); 127 } 128 129 // Per-type audio size check. multer's globale limiet was de WAV-bovengrens 130 // (100MB); gecomprimeerde formaten blijven op 50MB. 131 const audioExt = path.extname(audioFile.originalname).toLowerCase(); 132 const audioLimit = audioByteLimitFor(audioExt); 133 if (audioFile.size > audioLimit) { 134 try { fs.unlinkSync(audioFile.path); } catch {} 135 if (coverFile) try { fs.unlinkSync(coverFile.path); } catch {} 136 return fail(400, `audio te groot (max ${Math.round(audioLimit / 1024 / 1024)}MB voor ${audioExt || 'dit type'})`); 121 137 } 122 138
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)