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
if(!$imageSize || !in_array($imageSize['mime'], $allowMimeType)){ $this->error = 'Bad Image';
return false;
}
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.