Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trudne pytanie
Forum PHP.pl > Forum > PHP
b0nz0
Mam pytanie odnosnie wysyłanych plików na serwer .W jaki sposob moge sprawdzic czy wysyłany plik jest plikiem graficznym (zdjeciem).Nie chodzi mi o sprawdzanie rozszerzenia bo chce uniknąc problemów natury takiej ,że ktos w pliku txt zamieni rozszerzenie na jpg i wysle. Chodzi mi czy jest cos takiego co sprawdza czy plik do wsyłania jest plikiem graficznym.Z góry dziekuje za odpowiedzi.
Cezar708
[php] Sprawdzanie czy obrazek jest obrazkiem czy "niespodzianka" poczytaj sobie o tym, tam jest mój post, który powinien Ci wystarczyć

Pozdrawiam
PiXel2.0
Mozna sprawdzac typ mime plikow.
Nawet w tablicy z uploadowanymi plikami: $_FILES['zmienna']['type']

Typ mime jest ustalany na podstawie tresci pliku a nie jego rozszerzenia, ale tresc moze byc celowo spreparowana aby oszukac mechanizmy okreslajace typ mime wiec nie zaszkodzi sprawdzac tez rozszerzenie.

P.S.: Na miejscu moderatora zamknalbym temat o takim tytule ("Trudne pytanie")...
Cezar708
Cytat(PiXel2.0 @ 18.05.2008, 22:47:23 ) *
Typ mime jest ustalany na podstawie tresci pliku a nie jego rozszerzenia, ale tresc moze byc celowo spreparowana aby oszukac mechanizmy okreslajace typ mime wiec nie zaszkodzi sprawdzac tez rozszerzenie.


hmm a skąd taka informacja?

Cytat
$_FILES['userfile']['type']

The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

źródło

więc sprawdzanie MIME nic, ale to za nic nie jest dobre zabezpieczenie

Pozdrawiam
b0nz0
Ale jakiej funkcji użyć aby sprawdzic typ mime.I czy to sprawdzi czy plik jest np zdjęciem.
PiXel2.0
Cytat(b0nz0 @ 19.05.2008, 01:11:15 ) *
Ale jakiej funkcji użyć aby sprawdzic typ mime.I czy to sprawdzi czy plik jest np zdjęciem.


Jesli masz plik na serwerze to mozesz sprawdzic funkcja mime_content_type('sciezka')
Jesli plik jest wysylany przez uzytkownika to przez tablice $_FILES tak jak pisalem wyzej $_FILES['zmienna']['type']

Dla obrazow typy mime zaczynaja sie od image/* np:
image/gif
image/jpeg
image/bmp


Jednak nie radze polegac w 100% na typie mime...
b0nz0
A jesli użyje mime_content_type() dla pliku txt którego zminiłem specjalnie rozszerzenie na gif to czy pokaże ze jest to gif czy plik txt.
PiXel2.0
Cytat(b0nz0 @ 19.05.2008, 10:30:23 ) *
A jesli użyje mime_content_type() dla pliku txt którego zminiłem specjalnie rozszerzenie na gif to czy pokaże ze jest to gif czy plik txt.

To juz powinienes sam wiedziec dysponujac wiedza zdobyta po przeczytaniu tego tematu.
Czytaj moj post #3.
Babcia@Stefa
Jeśli nie masz GD na serwerze możesz sprawdzać nagłówki obrazka.

Dziękuję, Babcia@Stefa
camikazee
A może po prostu sprobować z użyciem jakiejś funkcji obrazkowej np. getimagesize i przechwytywać ewentualne błędy.
Pilsener
A ja lansuję sposób stary i toporny - wczytać kilka pierwszych i ostatnich bajtów z pliku, żeby sprawdzić co zawiera.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.