PHP Obsługa upload'

background image

Obsługa upload'u plików w PHP

W PHP można w dość prosty sposób obsłużyć formularz zawierający pole do
upload'owania plików. Pola te są obsługiwane przez większość przeglądarek (IE 4.0, lub 3.0 z
odpowiednią łatą, oraz Netscape 3.0).
Zaczniemy od stworzenia odpowiedniego formularza:

<FORM ACTION=upload.php3
METHOD=POST
ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN
NAME=MAX_FILE_SIZE VALUE=50000>
<INPUT NAME=pliczek TYPE=FILE>
<INPUT TYPE=SUBMIT VALUE=OK>
</FORM>

Kod ten spowoduje wyświetlenie na stronie pola na wpisanie nazwy pliku, oraz przycisku
pozwalającego na wygodne wybranie pliku. Ukryte pole MAX_FILE_SIZE określa, jaka jest
maksymalna wielkość pliku, który użytkownik może wysłać (w bajtach). Nie może on być
jednak większy od maksymalnego rozmiaru ustawionego w konfiguracji serwera.
Skoro mamy już formularz wysyłający plik, wypadałoby jeszcze coś z nim zrobić w
skrypcie upload.php3. W skrypcie będziemy mieli do dyspozycji kilka zmiennych zawierających
różne informacje o przysłanym pliku:
$pliczek - tymczasowa nazwa pod jaką został zapisany plik. Plik ten zostanie usunięty po
zakończeniu działania skryptu.
$pliczek_name - nazwa pod jaką plik był zapisany na komputerze z którego go wysłano.
$pliczek_size - rozmiar pliku (w bajtach).
$pliczek_type - typ pliku (np. text/html, image/gif itp.), ale tylko jeżeli przeglądarka przyśle taką
informację.
Zanim zaczniemy coś robić z otrzymanym plikiem należy dla bezpieczeństwa sprawdzić,
czy rzeczywiście pochodzi on z formularza. Można to zrobić funkcją is_uploaded_file:

if(is_uploaded_file($pliczek))
{
// ten plik rzeczywiście
// przyszedł z formularza
}
else
{
// ten plik nie pochodzi
z formularza
}

Jest to dość ważne, ponieważ bez tego można bardzo łatwo oszukać taki skrypt, aby
zrobił coś z dowolnym plikiem na serwerze (np. wywołując upload.php3?pliczek=/etc/passwd).
Jeżeli chcemy przenieść gdzieś przysłany plik, można użyć funkcji move_uploaded_file:

YGREG.COM - Obsługa upload'u plików w PHP

http://www.ygreg.com/druk.php?upload

1 z 2

2010-02-14 21:13

background image

move_uploaded_file($pliczek,
"uploady/$pliczek_name");

Nie trzeba wtedy sprawdzać, czy plik rzeczywiście pochodzi z formularza - funkcja
move_uploaded_file robi to automatycznie.
Jak zwykle zapraszam do wpisywania pytań i komentarzy na (http://ygreg.and.pl/forum)
forum.

Grzegorz 'Ygreg' Plebański

ygreg@ygreg.com

http://www.ygreg.com

http://www.ygreg.com

YGREG.COM - Obsługa upload'u plików w PHP

http://www.ygreg.com/druk.php?upload

2 z 2

2010-02-14 21:13


Wyszukiwarka

Podobne podstrony:
Jak wykonać obsługę stosu (First In, PHP Skrypty
obsluga klienta 1
Użytkowanie, Obsługiwanie i Kierowanie Eksploatacją
Obsługa interesantów
Piec LSL UB Instrukcja obsługi
Logistyczna obsługa klienta Kempny
Instrukcja obslugi Uchwyt samoc Nieznany
INSTRUKCJA OBSŁUGI DEKODER SAGEM ISD 4285 PL
PHP podst progr suplement wyklad grudzien 2011
Perswazyjny telemarketing 50 narzedzi sprzedazy i obslugi klienta przez telefon do zastosowania od z
Instrukcja obsługi interfejs KKL OPEL, BMW, VAG
Instrukcja obsługi Farymann 15D 18D
05 obslugiwanie statkow powietrznych systemy i organizacja obslug technicznych statkow powietrznych
Instrukcja obslugi wymiennikow CB alfa laval
Instrukcja obslugi klimatyzacji Vectra B

więcej podobnych podstron