Я новичок в 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);