Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sprawdzanie plików graficznych
mako11
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 22.02.2012

Ostrzeżenie: (0%)
-----


Jak sprawdzi czy na serwer została pobrany plik graficzny prawidłowo (czy nie jest uszkodzony lub pobrany w pełni) ?

Ten post edytował mako11 23.06.2014, 12:58:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Xart
post
Post #2





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

Ostrzeżenie: (0%)
-----


Może pobieraj i sprawdzaj wagę pliku ?
Go to the top of the page
+Quote Post
in5ane
post
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


http://stackoverflow.com/questions/1137391...es-after-upload
Go to the top of the page
+Quote Post
mako11
post
Post #4





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 22.02.2012

Ostrzeżenie: (0%)
-----


Nie jest to takie proste jak by się wydawało. Sprowadzenie wagi pliku rozwiązuje problem tylko częściowo, bo można założyć ze plik z wagą 0B na pewno jest uszkodzony, a nawet wziąć zakres 0 - 500B i więcej zależy jakiej na pewno wielkości jest plik (nie uszkodzony). Najlepiej by było pobrać wagę pliku na stronie i porównać z serwerem ale to też nie do końca oczywiste bo na ntfs jest rozmiar iny niż na ex4.
Sprawdzanie pliku za pomocą imageSize testowałem wszystko ok jak plik ma 0B ale uszkodzony plik w połowie odczytuje parametry prawidłowo więc kod
  1. imageSize = getimagesize($tmp_name);
  2. if(!$imageSize || !in_array($imageSize['mime'], $allowMimeType)){
  3. $this->error = 'Bad Image';
  4. @unlink($tmp_name);
  5. return false;
  6. }

jest tak samo mało skuteczny , wynika to pewnie że dane MIME są zapisywane na początku pliku a nie na końcu.
Najlepiej jak by php posiadał wget bo metoda copy nie zwsze jest najlepsza.




Ten post edytował mako11 25.06.2014, 20:53:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:13