Как я могу проверить тип файла перед загрузкой, используя SailsJS Skipper

Как следует из названия, теперь я не могу проверить тип файла перед загрузкой. Я проверяю и не разрешаю сохранять данные только после успешной загрузки файла. Ниже приведен базовый код

updateAvatar : function(data, context, req, res) {
  req.file('avatar').upload({
      dirname: '../../assets/images/avatar'
    }, function (err, files) {

    var allowExts = ['image/png', 'image/gif', 'image/jpeg'];

    if (err)
      return res.serverError(err);

    if (files.length === 0) 
      return res.badRequest('No file was uploaded!');

    if (allowExts.indexOf(files[0].type) == -1)
      return res.badRequest('File type is not supported!');

    // save database here
  });
}

Что я должен сделать для правильного кода? Извините за мой плохой английский! Большое спасибо!


person Thanh Dao    schedule 31.08.2015    source источник
comment
Здравствуйте, вы нашли какое-нибудь решение?   -  person Krunal Panchal    schedule 17.07.2017
comment
@KrunalPanchal, вы можете проверить мой ответ, чтобы помочь себе   -  person Theophilus Omoregbee    schedule 23.07.2017


Ответы (1)


Это заняло у меня время, чтобы исследовать, все кредиты Darkstra, которые дали представление о том, где мы можем получить необработанные свойства файла, например тип содержимого или даже имя файла, где мы можем разделить, чтобы получить расширение файла и выполнить наши проверки

вы можете проверить его ответ здесь

Главное принять это к сведению

req.file('foo')._files[0].stream, который содержит все, что нам нужно для обработки нашего файла, вы можете использовать console.log, чтобы увидеть его содержимое.

По крайней мере, вы можете делать любые манипуляции по вашему выбору.

person Theophilus Omoregbee    schedule 23.07.2017
comment
проблема в том, что после вызова req.file('foo') без загрузки мое приложение вылетает Ошибка: EMAXBUFFER - person Kreator; 02.06.2020