2015-09-06 15 views
7

Jak mogę sprawdzić, czy plik przesłany na mój serwer jest naprawdę obrazem? Nie tylko plik z rozszerzeniem (jpg, png, gif) tylko po to, aby był plikiem "obrazu". Stworzyłem usługę kompresji obrazu za pomocą imagemin, ale obawiam się, że przesłany plik jest naprawdę obrazem.Sprawdź, czy plik jest rzeczywiście obrazem w pliku express/node.js

+0

możliwe duplikat [W node.js, biorąc pod uwagę URL, w jaki sposób mogę sprawdzić czy ITS jpg/png/gif?] (Http://stackoverflow.com/questions/8473703/ in-node-js-given-a-url-how-do-i-check-czy-to-a-jpg-png-gif) – Vyacheslav

Odpowiedz

4

użyłem modułu mmmagic za to, że odkrywa typy MIME: mmmagic on Github

+0

Po prostu pytanie, kiedy próbuję przesłać "invalid.png" na mój serwer (chociaż został on właśnie stworzony na notatniku i po prostu zmieni jego rozszerzenie) czy typ mime zmieni się na image/png lub tylko, powiedzmy, tekst/zwykły? – user3569641

+0

coz, jeśli typem MIME będzie image/png, wówczas moduł nie będzie użyteczny, to – user3569641

+0

Moim osobistym przypadkiem użycia było określenie prawdziwych plików PDF z pliku html, który otrzymał rozszerzenie PDF, i działało dobrze. Jeśli spojrzysz na repozytorium Githuba, zobaczysz, że moduł działa, sprawdzając dane pliku, a nie po prostu sprawdzając rozszerzenie. – Dimitri

1

typy MIME nie są użyteczne. Spróbuj użyć magicznych liczb lub spróbuj otworzyć plik. Przeczytaj link, aby uzyskać więcej informacji. https://stackoverflow.com/a/8475542/1979882

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

+1

mmmagic robi dokładnie to, odczytuje binarne dane z pliku, szuka bajtów identyfikacyjnych i zamienia je w informacje o pliku, w tym typ MIME. Jest nawet wspomniany w linku stackoverflow, który podałeś. – Dimitri

Powiązane problemy