diff --git a/src/modules/api/api.ts b/src/modules/api/api.ts index eed8e73..22ccb6c 100644 --- a/src/modules/api/api.ts +++ b/src/modules/api/api.ts @@ -83,6 +83,11 @@ function GetApp(): ModuleType { ], }) ) + app.use( + fileUpload({ + limits: { fileSize: 50 * 1024 * 1024 }, + }) + ) // ------------------------------------------------------------------------------------------- let rootRedirectURL = '' @@ -141,11 +146,6 @@ function GetApp(): ModuleType { logger.Log(`Using public dir: ${pdir}`) app.use(express.static(pdir)) }) - app.use( - fileUpload({ - limits: { fileSize: 50 * 1024 * 1024 }, - }) - ) // ------------------------------------------------------------------------------------------- diff --git a/src/modules/api/submodules/feedback.ts b/src/modules/api/submodules/feedback.ts index 2020f81..be55e85 100644 --- a/src/modules/api/submodules/feedback.ts +++ b/src/modules/api/submodules/feedback.ts @@ -8,16 +8,22 @@ const uloadFiles = 'data/f' function setup(data: SubmoduleData): void { const { app /* userDB, url, publicdirs, moduleSpecificData */ } = data - app.post('/postfeedbackfile', function(req: Request, res: any) { - utils.uploadFile(req, uloadFiles).then(() => { - res.json({ success: true }) - }) + app.post('/postfeedbackfile', function (req: Request, res: any) { + utils + .uploadFile(req, uloadFiles) + .then(() => { + res.json({ success: true }) + }) + .catch(() => { + res.json({ success: false, msg: 'error during uploading' }) + return + }) logger.LogReq(req) logger.Log('New feedback file', logger.GetColor('bluebg')) }) - app.post('/postfeedback', function(req: Request, res: any) { + app.post('/postfeedback', function (req: Request, res: any) { logger.LogReq(req) if (req.body.fromLogin) { logger.Log( @@ -51,7 +57,7 @@ function setup(data: SubmoduleData): void { res.json({ success: true }) }) - app.route('/fosuploader').post(function(req: Request, res: any) { + app.route('/fosuploader').post(function (req: Request, res: any) { utils.uploadFile(req, uloadFiles).then(({ fileName }) => { res.redirect('/f/' + fileName) }) diff --git a/src/modules/api/submodules/userFiles.ts b/src/modules/api/submodules/userFiles.ts index 34e66b0..571b4a9 100644 --- a/src/modules/api/submodules/userFiles.ts +++ b/src/modules/api/submodules/userFiles.ts @@ -239,7 +239,7 @@ function setup(data: SubmoduleData): void { }) }) .catch(() => { - res.end('something bad happened :s') + res.json({ success: false, msg: 'something bad happened :s' }) }) }) diff --git a/src/utils/utils.ts b/src/utils/utils.ts index df4e776..30b697c 100755 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -149,7 +149,7 @@ function WriteFile(content: string, path: string): void { function writeFileAsync(content: string, path: string): void { CreatePath(path) - fs.writeFile(path, content, function(err) { + fs.writeFile(path, content, function (err) { if (err) { logger.Log( 'Error writing file: ' + path + ' (sync)', @@ -184,6 +184,13 @@ function deleteFile(fname: string): Boolean { function uploadFile(req: Request, path: string): Promise { return new Promise((resolve, reject) => { try { + if (!req.files) { + logger.Log( + `Unable to upload file, req.files is undefined`, + logger.GetColor('redbg') + ) + return + } const file = req.files.file // FIXME: Object.keys(req.files).forEach((file) => { saveFile() }) logger.Log('Uploading: ' + file.name, logger.GetColor('blue')) @@ -217,7 +224,10 @@ function uploadFile(req: Request, path: string): Promise { } }) } catch (err) { - logger.Log(`Unable to upload file!`, logger.GetColor('redbg')) + logger.Log( + `Unable to upload file, error on stderr`, + logger.GetColor('redbg') + ) console.error(err) reject(err) }