dodaj tą stronę do ulubionych     
użytkownicy online 23, liczba odwiedzin: 1255535
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów jezus jest królem polski wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. 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 Page copy protected against web site content infringement by Copyscape
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:

  • post_max_size = 8M
  • post_max_size+1 = 9

    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:
    post_max_size = 8M
    post_max_size+1 = 9
    post_max_size in bytes = 8388608

    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
    Oczywiście można sumować wartość poszczególnych plików $_FILES[name][size] i porownywać jej wielkość z wartością ustawioną w post_max_size w php.ini ale jest to rozwiązanie działające tylko na serwerze na którym się aktualnie pisze kod (inne serwer przecież mogą mieć inną konfigurację)
    Ale jest lepsze rozwiązanie: Sprawdzamy czy tablica $_POST, którą otrzymaliśmy jest pusta i czy tablica $_FILES nie jest pusta. Jeżeli okaże się to prawdą to oznacza, że nastąpiła próba wgrania co najmniej 1 pliku i suma przekroczyła aktualną wartość post_max_size przez co zresetowała tabelę $_POST. Zapisujemy błąd do sesji i przekierowywujemy na formularz.

    &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: http://blog.adiasz.pl/2007/07/15/formularze-post_max_size-a-tablice-_post-i-_files/

  • Page copy protected against web site content infringement by Copyscape

    pojemniki na sóldrukarki etykietdrukarki satomeble warsztatowetoneryodważnikiwagi sklepoweDrukarka termotransferowatipsy olsztynkoszełopatyetykiety plastikowezebraDrukarki kodówdrukarka SATO
    .
    edyta wakulińska

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | 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