2015-09-06 6 views
7

Wie kann ich überprüfen, ob die auf meinem Server hochgeladene Datei wirklich ein Bild ist? Nicht nur eine Datei mit (jpg, png, gif) Erweiterung, nur um es als "Bild" -Datei zu machen. Ich habe einen Bildkomprimierungsdienst mit imagemin erstellt, aber ich fürchte, wenn die hochgeladene Datei wirklich ein Bild ist.Ermitteln Sie, ob eine Datei wirklich ein Bild ist in express/node.js

+0

möglich Duplikat [In Node.js, da eine URL, wie kann ich überprüfen, ob es ein jpg/jpeg/gif?] (Http://stackoverflow.com/questions/8473703/ in-node-js-gegeben-ein-url-how-do-i-check-ob-es-a-jpg-png-gif) – Vyacheslav

Antwort

4

Ich habe das mmmagic Modul dafür verwendet wird, entdeckt er Mime-Typen: mmmagic on Github

+0

Nur eine Frage, wenn ich versuche, "invalid.png" auf meinen Server zu laden (obwohl es nur auf Notizblock erstellt wurde und nur seine Erweiterung ändern) wird der Mime-Typ zu Bild/Png oder einfach gesagt, Text/plain? – user3569641

+0

coz wenn Mime-Typ wird Bild/Png dann das Modul ist nicht sinnvoll dann – user3569641

+0

Mein eigener Anwendungsfall war echte PDF-Dateien aus HTML-Ausgabe zu bestimmen, die eine PDF-Erweiterung gegeben wurde, und es hat gut funktioniert. Wenn Sie sich das Github-Repo ansehen, sehen Sie, dass das Modul funktioniert, indem es die Dateidaten überprüft und nicht einfach nur eine Erweiterung überprüft. – Dimitri

1

Mime-Typen nicht geeignet sind. Versuchen Sie magische Zahlen oder versuchen Sie einfach, die Datei zu öffnen. Lesen Sie mit Link für weitere Details. https://stackoverflow.com/a/8475542/1979882

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

+1

mmmagic tut genau das, liest die Binärdaten der Datei, sucht nach den Identifikationsbytes und wandelt diese in Informationen über die Datei um, einschließlich MIME-Typ. Es wird sogar in der von Ihnen bereitgestellten Stackoverflow-Verknüpfung erwähnt. – Dimitri

Verwandte Themen