import app from '@adonisjs/core/services/app'; const ALLOWED_EXTENSIONS = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'mp4', 'mov', 'avi', 'webm']; const MAX_SIZE = '100mb'; export default class UploadController { async store({ request, response }) { const file = request.file('file', { size: MAX_SIZE, extnames: ALLOWED_EXTENSIONS, }); if (!file) { return response.badRequest({ success: false, message: 'No file provided.' }); } if (!file.isValid) { return response.unprocessableEntity({ success: false, message: file.errors[0]?.message ?? 'File validation failed.', errors: file.errors, }); } const safeName = file.clientName.replace(/[^a-zA-Z0-9._-]/g, '_'); const uniqueFilename = `${Date.now()}_${safeName}`; await file.move(app.publicPath('uploads'), { name: uniqueFilename, overwrite: false, }); if (file.hasErrors) { return response.internalServerError({ success: false, message: 'Could not save the file to disk.', errors: file.errors, }); } return response.ok({ success: true, filename: uniqueFilename, url: `/uploads/${uniqueFilename}`, }); } } //# sourceMappingURL=upload_controller.js.map