2015-01-25 2 views
1

Я хочу, чтобы люди, скажем, загрузили файл фильма или сценарий оболочки, просто добавив расширение jpg к моей конечной точке загрузки аватара. Я не писал бэкэнда для загрузки сценария в течение длительного времени, но я помню, что PHP мог сказать мне фактический тип файла, а не только тип, основанный на расширении файла. Я также могу проверить это на интерфейсе JS. Или в Java есть http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType%28java.nio.file.Path%29Проверьте фактический тип файла в узле.js

Проблема заключается в ванильном узле и с использованием связки модулей, связанных с mime, включая mmmagic, просто возвращает тип mime на основе расширения файла. Например, я удалил расширение gif в файле gif и изменил его на txt, и оба узла и mmmagic просто вернули text/plain.

ответ

2

В Java я использовал Tika, который является инструментом детектирования типа мим. Оказывается, для этого есть мост nodejs, node-tika.

Чтобы использовать

npm install node-tika 

и

var tika = require('tika'); 

tika.type('test/data/file.pdf', function(err, contentType) { 
    console.log(contentType); // Logs 'application/pdf'. 
});