Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!
Wyszukiwarka

Wyszukiwarka

Aby odnaleźć interesujące Cię informacje wpisz poniżej szukane frazy:
Logowanie

Logowanie

Zaloguj się aby zobaczyć swój profil:

Upload plików

Czyż nie byłoby wspaniale nauczyć nasze skrypty jak zapytać użytkownika o plik, pobrać go i umieścić w swoim katalogu? Oczywiście bez konieczności uciekania się do klientów FTP czy innych narzędzi, tylko poprzez przeglądarkę? Jeśli chcecie wzbogacić swoje skrypty o taką funkcjonalność, zapraszam do zapoznania się z poniższym materiałem.

Od strony przeglądarki

Aby uploadować pliki przez przeglądarkę musimy najpierw przygotować odpowiedni formularz. Może on wyglądać np. tak:

Przykład: Formularz dla wysyłania plików

Jest kilka specyficznych rzeczy dla takiego formularza, o których musimy pamiętać:

  • parametr enctype znacznika form ustawiamy na multipart/form-data, inaczej PHP w ogóle nie podejmie się uploadowania pliku, dostaniemy normalną tablicę $_POST.
  • ukryty input o nazwie MAX_FILE_SIZE, który określa maksymalny rozmiar pliku, jeśli ten zostanie przekroczony upload nie dojdzie do skutku.
  • input typu file, który pozwala na przeglądanie własnego dysku i wybór pliku do przesłania.

Musimy także pamiętać, aby w parametrze action znacznika form ustawić ścieżkę do pliku *.php odpowiedzialnego za przenoszenie pliku.

Od strony serwera

Formularz został wysłany, jeśli wszystko poszło po naszej myśli plik został uploadowany na serwer. Zadaniem PHP będzie teraz przeniesienie pliku w wybrane przez nas miejsce. Wykorzystamy do tego funkcje

move_uploaded_file():

Przykład: Kod odpowiedzialny za przeniesienie uploadowanego pliku

Na początku sprawdzamy czy plik w ogóle został wgrany na serwer. Robimy to za pomocą funkcji is_uploaded_file(), która jako argument przyjmuje ścieżkę do uploadowanego pliku. Jest ona pobierana z tablicy $_FILES, która została utworzona po wysłaniu naszego pliku i zawiera wszystkie informacje potrzebne do procesu uploadu:

  • $_FILES['userfile']['name'] - nazwa pliku
  • $_FILES['userfile']['type'] - typ pliku
  • $_FILES['userfile']['tmp_name'] - ścieżka na serwerze do uploadowanego pliku
  • $_FILES['userfile']['error'] - numer błędu (jeśli brak błędów wartość wynosi 0)
  • $_FILES['userfile']['size'] - rozmiar pliku w bajtach
Uwagi
  • Aby podany wyżej przykład działał wymagane jest PHP 4 >= 4.1.0 (w tej wersji wprowadzono nowe tablice superglobalne, w tym $_FILES)
  • Przesyłanie plików jest możliwe przez przeglądarki: Netscape Navigator wersje 3 i późniejsze oraz Microsoft Internet Explorer w wersji 3 (+patch) lub nowszych.
  • dyrektywy w pliku php.ini odpowiedzialne za upload plików to: file_uploads, upload_max_filesize, upload_tmp_dir, i post_max_size.
Informacje na podobny temat:
Wasze opinie
Wszystkie opinie uzytkowników: (2)
ale po co...
Piątek 31 Lipiec 2009 11:51:18 pm - laureno <lo100_at_2ox.pl>

A może ktoś mi powiedzieć, po co jest to 'multipart/form-data'?
Wiem, że bez tego nei zadziała, ale zastanawia mnie to, a nigdzie nie znalazłem dobrego wyjaśnienia.

http://www.hostings.com.pl/pieczatki-moga-byc-kosztem-dzialalnosci/ &#8226; http://www.hostings.com.pl/sklepy-intternetowe-zakladanie-wlasnego/ &#8226; http://www.hostings.com.pl/odpisy-z-krs-pieczatki-wizytowki-online/

takie sobie...
Czwartek 06 Wrzesień 2007 8:52:28 pm - mmx3

Tak sobie przetłumaczony manual... zero polotu...

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System