В Node.js, учитывая URL-адрес, как мне проверить, является ли это jpg / png / gif?

Мой текущий метод таков:

var request = require('request');
var mime = require('mime');
var fs = require('fs');
var uri = 'http://www.sweetslyrics.com/images/img_gal/25646_christina-perri-213968.jpg';
request({
        'method':'GET',
        'uri': uri
},function(err, response,body){
    var tmp_path = '/tmp/123456';
    fs.writeFile(tmp_path, body, function(err) {
        console.log(mime.lookup(tmp_path));  //application/octet-stream ?????
    });
});

Изображение, очевидно, является изображением, но node -mime говорит, что это application / octet-stream .Почему?

Примечание: - Я не хочу полагаться на тип содержимого заголовков ответа, потому что, исходя из моего опыта, иногда эти заголовки ответов задаются неправильно ... и они не определяют истинный тип файла. (вот почему я сохраняю его в файл, а затем заставляю node-mime определять его за меня!)

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

Редактировать: Я только что понял, что нод-пантомима не «магия». Он просто проверяет расширение :( ...

Edit2: Я нашел это: https://github.com/SaltwaterC/mime-magic

14
задан TIMEX 12 December 2011 в 11:55
поделиться