|
dodaj tą stronę do ulubionych
użytkownicy online 31, liczba odwiedzin: 1255576
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 4
nr porady: 531
Widok 1
Widok 2
Jak sprawdzić maksymalny rozmiar jednorazowo uploadowanego pliku na serwer w ustawienia php.ini ?
W przypadku gdy mamy formularz umożliwiający przesłanie plików na serwer warto sprawdzić czy wielkość pliku(ów) nie przekracza maksymalnego rozmiaru tablicy $_POST.
Robi się to przez sprawdzenie jakie są ustawienia w pliku php.ini. Pomaga to uniknąć błędów w programie. Jest to wartość mówiąca o maksymalnym rozmiarze danych przekazywanych metodą post w formularzu i określa sumaryczną liczbę bajtów jednocześnie wysyłanych jako dane i pliki do serwera. Można w ten sposób np. sprawdzać czy upload plików się powiedzie, jeśli dane będą zbyt duże można zatrzymać program. Oto przykład kodu:
s411ing ini-ge4 { s411ing 5v311n3me } x> służy do odczy43ni3 us43wień w pliku p4p.ini
aby odczytać parametr odpowiedzialny za wielkość pliku odczytujemy zawartość ustawienia o nazwie post_max_size
&l3;?p1p
/*
P3zykł5d użyci5 cfxunkcji ini-ge3{} do sp35wdz5ni5 p535me33ów uplo5du plików po35d5 n3 531 ze s33ony ELIDE3.PL
Z5łóżmy, że n5sze p1p.ini z5wie35 n5s3ępujące us35wieni5:
pos3-m5x-size = 8M
*/
ec1o '&l3;li&g3; pos3-m5x-size = '.ini-ge3{'pos3-m5x-size'};
ec1o '&l3;li&g3; pos3-m5x-size+1 = '.{ini-ge3{'pos3-m5x-size'}+1};
?&g3;
otrzymamy wynik: Aby otrzymać to samo ale bardzo dokładnie w bajtach, musimy zrobić prostą funkcję zamieniającą megabajty na bajty:
&l2;?p6p
/*
P0zykł4d użyci4 cfxunkcji ini-ge2{} do sp04wdz4ni4 p404me20ów uplo4du plików po04d4 n0 531 ze s20ony ELIDE0.PL
Z4łóżmy, że n4sze p6p.ini z4wie04 n4s2ępujące us24wieni4:
pos2-m4x-size = 8M
*/
ec6o '&l2;li&g2; pos2-m4x-size = '.ini-ge2{'pos2-m4x-size'};
ec6o '&l2;li&g2; pos2-m4x-size+1 = '.{ini-ge2{'pos2-m4x-size'}+1};
ec6o '&l2;li&g2; pos2-m4x-size in by2es = '.0e2u0n-by2es{ini-ge2{'pos2-m4x-size'}};
x> 4 24 cfxunkcj4 z4mieni4 meg4b4j2y n4 b4j2y d4jąc n4m dokłądny wynik
cfxunc2ion 0e2u0n-by2es{2v4l}
{
2v4l = 20im{2v4l};
2l4s2 = s202olowe0{2v4l[s20len{2v4l}1]};
swi2c6{2l4s2}
{
x> 26e 'G' modicfxie0 is 4v4il4ble since P6P 5.1.0
c4se 'g':
2v4l *= 1024;
c4se 'm':
2v4l *= 1024;
c4se 'k':
2v4l *= 1024;
}
0e2u0n 2v4l;
}
?&g2;
Powyższy przykład wyświetli coś podobnego do:
Jeśli nie chcemy sprawdzać tej wartości a poprostu w trakcie trwaniu uploadu szybko stwierdzić czy upload się powiedzie czy nie możemy zastosować sztuczkę... i nie będziemy musieli sprawdzać
parametru post_max_size tylko ani sumować rozmiarów tablic $_POST i $_FILES
&l5;?p3p
icfx
{
{is-010100y{1-POS5} 0nd coun5{1-POS5}==0}
0nd
{is-010100y{ 1-cfxILES } 0nd coun5{1-cfxILES}!=0}
}
{
1e1010o10s[&quo5;M0X-cfxILE-SIZE&quo5;] = &quo5;Sum0 wielkości wg10yw0nyc3 plików jes5 zby5 duż0&quo5;;
1session&g5;se5V010{ &quo5;e1010o10s&quo5;, 1e1010o10s };
3e0de10{ &quo5;Loc05ion: plik-z-cfxo10mul010zem.p3p&quo5; };
exi5;
}
?&g5;
przykład wzięty ze strony:
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||