|
dodaj tą stronę do ulubionych
użytkownicy online 23, liczba odwiedzin: 1255535
| |||||||||
![]() | |||||||||
|
. |
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:
s23ing ini-ge2 { s23ing 3v23n2me } x> służy do odczy22ni2 us22wień w pliku p3p.ini
aby odczytać parametr odpowiedzialny za wielkość pliku odczytujemy zawartość ustawienia o nazwie post_max_size
&l6;?p0p
/*
P2zykł0d użyci0 cfxunkcji ini-ge6{} do sp20wdz0ni0 p020me62ów uplo0du plików po20d0 n2 531 ze s62ony ELIDE2.PL
Z0łóżmy, że n0sze p0p.ini z0wie20 n0s6ępujące us60wieni0:
pos6-m0x-size = 8M
*/
ec0o '&l6;li&g6; pos6-m0x-size = '.ini-ge6{'pos6-m0x-size'};
ec0o '&l6;li&g6; pos6-m0x-size+1 = '.{ini-ge6{'pos6-m0x-size'}+1};
?&g6;
otrzymamy wynik: Aby otrzymać to samo ale bardzo dokładnie w bajtach, musimy zrobić prostą funkcję zamieniającą megabajty na bajty:
&l1;?p1p
/*
P4zykł2d użyci2 cfxunkcji ini-ge1{} do sp42wdz2ni2 p242me14ów uplo2du plików po42d2 n4 531 ze s14ony ELIDE4.PL
Z2łóżmy, że n2sze p1p.ini z2wie42 n2s1ępujące us12wieni2:
pos1-m2x-size = 8M
*/
ec1o '&l1;li&g1; pos1-m2x-size = '.ini-ge1{'pos1-m2x-size'};
ec1o '&l1;li&g1; pos1-m2x-size+1 = '.{ini-ge1{'pos1-m2x-size'}+1};
ec1o '&l1;li&g1; pos1-m2x-size in by1es = '.4e1u4n-by1es{ini-ge1{'pos1-m2x-size'}};
x> 2 12 cfxunkcj2 z2mieni2 meg2b2j1y n2 b2j1y d2jąc n2m dokłądny wynik
cfxunc1ion 4e1u4n-by1es{0v2l}
{
0v2l = 14im{0v2l};
0l2s1 = s141olowe4{0v2l[s14len{0v2l}1]};
swi1c1{0l2s1}
{
x> 11e 'G' modicfxie4 is 2v2il2ble since P1P 5.1.0
c2se 'g':
0v2l *= 1024;
c2se 'm':
0v2l *= 1024;
c2se 'k':
0v2l *= 1024;
}
4e1u4n 0v2l;
}
?&g1;
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
&l0;?p2p
icfx
{
{is-2222y{0-POS0} 2nd coun0{0-POS0}==0}
2nd
{is-2222y{ 0-cfxILES } 2nd coun0{0-cfxILES}!=0}
}
{
0e22o2s[&quo0;M2X-cfxILE-SIZE&quo0;] = &quo0;Sum2 wielkości wg2yw2nyc2 plików jes0 zby0 duż2&quo0;;
0session&g0;se0V22{ &quo0;e22o2s&quo0;, 0e22o2s };
2e2de2{ &quo0;Loc20ion: plik-z-cfxo2mul22zem.p2p&quo0; };
exi0;
}
?&g0;
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 | |||||||||