2015-09-06 20 views
7

Come posso verificare se il file caricato sul mio server è davvero un'immagine? Non solo un file con estensione (jpg, png, gif) solo per renderlo un file "immagine". Ho creato un servizio di compressione delle immagini usando imagemin, ma temo che il file caricato sia davvero un'immagine.Determina se un file è realmente un'immagine in express/node.js

+0

possibile duplicato del [In Node.js, dato un URL, come faccio a verificare se la sua un jpg/png/gif?] (Http://stackoverflow.com/questions/8473703/ in-node-js-given-a-url-how-do-i-check-if-its-a-jpg-png-gif) – Vyacheslav

risposta

4

Ho usato il modulo mmmagic per questo, si scopre tipi MIME: mmmagic on Github

+0

Solo una domanda, quando provo a caricare "invalid.png" sul mio server (anche se è stato appena creato sul blocco note e basta modificarne l'estensione) il tipo di mime sarà cambiato in image/png o solo, ad esempio, text/plain? – user3569641

+0

coz se il tipo mime sarà image/png quindi il modulo non è utile allora – user3569641

+0

Il mio caso d'uso è stato quello di determinare i veri file PDF dall'output html a cui è stata data un'estensione PDF, e ha funzionato bene. Se date un'occhiata al repository Github, vedrete il modulo funziona controllando i dati del file, non semplicemente controllando un'estensione. – Dimitri

1

tipi MIME non sono utili. Prova i numeri magici o cerca semplicemente di aprire il file. Leggi con link per maggiori dettagli. https://stackoverflow.com/a/8475542/1979882

http://www.astro.keele.ac.uk/oldusers/rno/Computing/File_magic.html#Image

+1

mmmagic fa esattamente questo, legge i dati binari del file, cerca i byte di identificazione e li trasforma in informazioni sul file, incluso il tipo mime. Viene anche menzionato nel link StackOverflow che hai fornito. – Dimitri

Problemi correlati