Moja obecna metoda jest taka:W pliku Node.js, podając adres URL, w jaki sposób mogę sprawdzić, czy jest to 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 ?????
});
});
Obraz jest oczywiście obraz, ale node-mime
mówi, że to application/octet-stream
. Czemu?
Uwaga: Uwaga: Nie chcę polegać na typie treści nagłówków odpowiedzi, ponieważ na podstawie mojego doświadczenia czasami nagłówki odpowiedzi są ustawione niepoprawnie ... i nie określają prawdziwego typu pliku. (dlatego właśnie zapisuję go w pliku, a następnie mam dla niego węzeł-mime).
Chcę poznać najlepszy sposób ustalenia, czy plik jest obrazem, z marginesem błędu 0.
Edytuj: Właśnie zdałem sobie sprawę, że węzeł-mim nie jest "magiczny". To po prostu sprawdza rozszerzenia :(...
Edit2: Znalazłem to: https://github.com/SaltwaterC/mime-magic
co jest złego w sprawdzeniu ostatnie trzy znaki URI? – Raynos
Należy zauważyć, że jeśli zamierzasz pobrać plik, aby go sprawdzić, ale go nie przechowujesz, lepiej jest użyć żądania zasięgu dla kilku pierwszych kilobajtów zamiast pobrać cały plik. –