masquitos

Untitled

Jul 28th, 2020
2,798
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const form = formidable({
  2.   multiples: false,
  3.   uploadDir: environment.tmp_dir_avatars,
  4.   maxFileSize: environment.max_avatar_size
  5. });
  6.  
  7. async function validFile(req, res, next) {
  8.   try {
  9.     console.log("validFile");
  10.     const file = await new Promise((resolve, reject) => {
  11.       form.parse(req, (err, fields, decodedObject) => {
  12.         if (err) {
  13.           return reject(err);
  14.         }
  15.         const file = decodedObject.avatar;
  16.         if (!file.type) {
  17.           return reject({
  18.             message: "File format doesnt exist " + file.type,
  19.             file: file
  20.           });
  21.         }
  22.         // image/x-png, image/png, image/gif, image/jpeg
  23.         const fileType = file.type.toLowerCase();
  24.         if (
  25.           fileType === "image/x-png" ||
  26.           fileType === "image/png" ||
  27.           fileType === "image/gif" ||
  28.           fileType === "image/jpeg"
  29.         ) {
  30.           console.log("readed file", file.name, "to", file.path);
  31.           resolve(file);
  32.         } else {
  33.           reject({ message: "Wrong file format " + fileType, file: file });
  34.         }
  35.       });
  36.     });
  37.     res.locals.file = file;
  38.     return next();
  39.   } catch (err) {
  40.     if (err.file && err.file.path) {
  41.       // Delete file
  42.       fs.unlink(err.file.path, err => {
  43.         if (err) {
  44.           console.error(err);
  45.           return;
  46.         }
  47.       });
  48.     }
  49.     console.error("error validFile userId:", req.user.id, err.message);
  50.     return res.json(requester.createError());
  51.   }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment