diff options
author | Raphael Kabo <mail@raphaelkabo.com> | 2023-02-02 10:16:26 +0000 |
---|---|---|
committer | Raphael Kabo <mail@raphaelkabo.com> | 2023-02-02 10:16:26 +0000 |
commit | 2e4dbb873372e59dc4bceeca2a8d87460acf2ceb (patch) | |
tree | b5914409263e62327fb8071ffbf5c6aba98a373e | |
parent | 8627537af32c8e88fa8bdfe224b92621c7e2df5c (diff) |
Improve error handling for image uploads
-rwxr-xr-x | routes.js | 20 | ||||
-rwxr-xr-x | views/partials/neweventform.handlebars | 2 |
2 files changed, 13 insertions, 9 deletions
@@ -670,14 +670,18 @@ router.post('/newevent', async (req, res) => { let isPartOfEventGroup = false; if (req.files && Object.keys(req.files).length !== 0) { let eventImageBuffer = req.files.imageUpload.data; - Jimp.read(eventImageBuffer, (err, img) => { - if (err) addToLog("Jimp", "error", "Attempt to edit image failed with error: " + err); - img - .resize(920, Jimp.AUTO) // resize - .quality(80) // set JPEG quality - .write('./public/events/' + eventID + '.jpg'); // save - }); - eventImageFilename = eventID + '.jpg'; + eventImageFilename = await Jimp.read(eventImageBuffer) + .then(img => { + img + .resize(920, Jimp.AUTO) // resize + .quality(80) // set JPEG quality + .write('./public/events/' + eventID + '.jpg'); // save + const filename = eventID + '.jpg'; + return filename; + }) + .catch(err => { + addToLog("Jimp", "error", "Attempt to edit image failed with error: " + err); + }); } let startUTC = moment.tz(req.body.eventStart, 'D MMMM YYYY, hh:mm a', req.body.timezone); let endUTC = moment.tz(req.body.eventEnd, 'D MMMM YYYY, hh:mm a', req.body.timezone); diff --git a/views/partials/neweventform.handlebars b/views/partials/neweventform.handlebars index ea13298..f2175ff 100755 --- a/views/partials/neweventform.handlebars +++ b/views/partials/neweventform.handlebars @@ -49,7 +49,7 @@ <div class="form-group col-sm-10"> <div class="image-preview" id="eventImagePreview"> <label for="image-upload" id="eventImageLabel">Choose file</label> - <input type="file" name="imageUpload" id="eventImageUpload" /> + <input type="file" name="imageUpload" id="eventImageUpload" accept="image/jpeg,image/gif,image/png" /> </div> <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small> </div> |