Как найти настоящий mimetype файла, не загружая полный файл? - PullRequest
0 голосов
/ 15 февраля 2019

Я разрабатываю API для загрузки файла с помощью Node.js.Размер файла может варьироваться от 1 КБ до 1 ГБ.Я хочу разрешить только определенный тип файлов, таких как png, pdf, doc и т. Д., И отправлять пользователю ошибку, если тип файла неправильный.

Я использую для этого грозный модуль.Я могу проверить тип файла, используя следующий код

var form = new formidable.IncomingForm();
form.on('fileBegin', function(name, file) {
    //check file.type
});

Но это дает тип, основанный только на расширении, а не на реальном типе файла, например, если расширение файла равно .pdf, это даст application / pdfно если я изменю расширение на .html, оно даст text / html.Поэтому любой пользователь может загрузить неправильный файл, просто изменив расширение файла.

И я также хочу не загружать весь файл перед проверкой типа файла.Поскольку будет очень плохой идеей сначала загрузить файл размером 1 ГБ, а затем проверить его тип файла

...