dodaj tą stronę do ulubionych     
użytkownicy online 31, liczba odwiedzin: 1255576
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:
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:

  • 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:

    &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:
    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.

    &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: 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