Witam
czy wie ktos moze jak w skuteczny sposob zablokowac mozliwosc uploadu plikow wiekszych niz okreslona wielkosc
znalazlem cos takiego
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
ale to nie dziala w ogole
Sprawdź na serwerze ile waży plik.
$_FILES['plik']['size']
Zamiast plik nazwa pola w file.
Domyślam się że nie jesteś na dedykowanym, a żaden admin nie zezwala a przynajmniej nie powinien pozwalać na edycje rozmiaru plików przesyłanych przez formularze z poziomu konta użytkownika.
Można próbować w .htaccess nadpisać wartość... ale wątpię... to niezgodne z polityką bezpieczeństwa.
Tak wiec.
Zabawa po stronie przeglądarki jest bezcelowa.
Jeżeli chcesz ograniczyć do konkretnego (mniejszego niż limit PHP opisany w ustawieniach php.ini)
$maksymalny=50000;
$file_size=$HTTP_POST_FILES['twojplik']['size'];
if($file_size >= $maksymalny){
//plik jest zbyt duzy
}
else
{
//plik jest ok
}
Przecież
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
Idzie po stronie usera, ale większość przeglądarek to olewa.
Po stronie usera? Przeglądarka to olewa, bo to bez znaczenia jest.
Plik przez HTTP leci nieważne jak wielki jest, co sobie user wybierze, ale jeśli jest większy niż MAX_FILE_SIZE (względnie ograniczenia PHP/serwera) to PHP wrzuci po prostu błąd UPLOAD_ERR_FORM_SIZE do tablicy $_FILES (ewentualnie UPLOAD_ERR_INI_SIZE).
Żeby zrobić dialog wyboru plików z ograniczeniami trzeba by się odwołać może do Flasha (nie wiem czy na to by pozwolił), ewentualnie podpisanego apletu Javy czy zaufanego obiektu Silverlight.