Проверьте MIME-тип multipart / form-data stream для загрузки файла перед загрузкой файлов в узле js. - PullRequest
0 голосов
/ 24 мая 2019

Я новичок в node.js и хочу проверить MIME-тип файла перед загрузкой файла multipart / form-data в приложение-экспресс-узел.Я использовал многопартийный пакет из-за преимущества использования потоков при загрузке файлов для меньшего потребления памяти для этой цели, я пытался использовать mmgic , но я всегда получаю текст / обычный текст, Любые идеидобро пожаловать .

Вот мой код:

    const fs = require('fs')
    var multiparty = require('multiparty');
    const fileType = require('file-type');
    var mmm = require('mmmagic'),
       Magic = mmm.Magic;
    var magic = new Magic(mmm.MAGIC_MIME_TYPE);

let form = new multiparty.Form();
      let byteCount = 0;
      form.on('part', function (part) {
         let buf = Buffer.from(JSON.stringify(part));
         magic.detect(buf, function (err, result) {
            if (err) throw err;
            console.log(result);
         });
         part.on('error', function (err) {
            res.json({ done: 'false', result: err });
         });
         const w_stream = fs.createWriteStream(`${path}/${file_name}`);
         byteCount = byteCount + part.byteCount;
         console.log(`byteCount= ${byteCount}`);
         if (byteCount > max_size * 1e6)
            res.json({ done: 'false'});
         part.pipe(w_stream);
      });
      form.on('close', () => {
         res.json({ done: 'true'});
      });
      form.on('error', (err) => {
         res.json({
            done: 'false',
            error: err
         });
      });
  form.parse(req);
...