AWWW-1st3.6-w06.tresc-1.1-Slajd36
File upload w PHP
Mechanizm file upload polega na przesyłaniu pliku z lokalnego systemu plików użytkownika na serwer za pośrednictwem formularza HTML wyświetlonego w przeglądarce. Przykładem zastosowania tej techniki są choćby serwisy konferencji naukowych, umożliwiające autorom przesyłanie poprzez WWW plików z propozycjami artykułów. Mechanizm ten posiada wsparcie ze strony języka HTML i protokołu HTTP, wymaga jedynie stworzenia aplikacji gotowej odebrać po stronie serwera plik przesłany z formularza HTML metodą POST. Aplikację taką szczególnie łatwo można napisać w PHP, czego przykład przedstawiono na slajdzie.
Formularz HTML służący do przesyłania plików musi posiadać atrybut enctype="multipart/form-data" (1) oraz wysyłać dane metodą POST (2). Pole w formularzu umożliwiające wybór pliku do przesłania jest tworzone elementem <INPUT> typu „file” (3). Obsługa mechanizmu file upload jest bardzo prosta w PHP, gdyż PHP odbiera przesłane pliki i zapisuje je w katalogu wskazanym w opcjach konfiguracyjnych, udostępniając skryptowi informacje o przesłanych do niego plikach w tablicy superglobalnej $_FILES. Przykładowo, $_FILES['plik']['tmp_name'] dla pliku przesłanego z pola formularza o nazwie „plik” zwraca pełną (wraz z ścieżką), nadaną automatycznie przez PHP nazwę pliku, pod którą został zapisany na serwerze, a $_FILES['plik']['name'] zwraca oryginalną nazwę pliku po stronie klienta (bez lokalnej ścieżki). Skrypt upload.php przedstawiony na slajdzie najpierw sprawdza czy plik został poprawnie przesłany na serwer funkcją is_uploaded_file() (4), a następnie wyświetla potwierdzenie odbioru pliku (5). Typowo, po pozytywnym zweryfikowaniu odbioru pliku, skrypt powinien go skopiować do docelowej lokalizacji funkcją move_uploaded_file().