Wysyłanie pliku na serwer
Dzięki PHP możemy w łatwy i przyjemny sposób obsłużyć pliki uploadowane na serwer. Jednak, by prawidłowo wysłać plik, niezbędny będzie odpowiedni formularz HTML. Poniżej przedstawię przykład takiego formularza:
<form enctype="multipart/form-data" action="plik.php" method="post" > <input type="hidden" name="MAX_FILE_SIZE" value="512000" /> <input type="file" name="nazwa_pliku" /> <input type="submit" value="wyślij" /> </form>
Jak można zauważyć, formularz posiada kilka dodatkowych elementów. Pierwszym z nich jest dodatkowy atrybut enctype=”multipart/form-data”, który musimy dodać, by móc wysłać plik. Trzeba pamiętać, że pliki wysyłamy tylko i wyłącznie metodą POST.
Kolejnym niezbędnym dodatkiem jest ukryte pole o nazwie „MAX_FILE_SIZE”. Zawiera ono informację o maksymalnym rozmiarze pliku (wartość w bajtach). Na koniec pole typu „FILE”, którego umieszczenie umożliwi wybranie pliku z dysku lokalnego.
Plik na serwerze
Po wysłaniu pliku na serwer, w zmiennej superglobalnej $_FILES pojawia się nowy rekord $_FILES[’nazwa_pliku’]. Od tej pory zawiera on tablicę informacji o wysłanym pliku. Te informacje to: rozmiar, nazwa, nazwa tymczasowa, błędy oraz typ pliku. Tak więc, po umieszczeniu na stronie plik.php odpowiedniego kodu, możemy sprawdzić z jakim plikiem mamy do czynienia.
<?php // wyświetlanie typu pliku echo $_FILES['nazwa_pliku']['type']; // wyświetlanie rozmiaru echo $_FILES['nazwa_pliku']['size']; // wyświetlanie nazwy pliku echo $_FILES['nazwa_pliku']['name']; // wyświetlanie nazwy tymczasowej echo $_FILES['nazwa_pliku']['tmp_name']; // wyświetlanie ewentualnych błędów echo $_FILES['nazwa_pliku']['error']; ?>
Wiesz już w jaki sposób PHP tarktuje pliki, wysyłane formularzem HTML. W następnym rozdziale spróbujemy wysłać obrazek .jpg na serwer. Skrypt będzie sprawdzał, czy wysłany plik jest obrazkiem oraz czy nie wystąpiły błędy. Następnie zapisze go ze zmienioną nazwą. Zapraszam!
Spis lekcji w rozdziale szóstym
Poprzednia lekcja: Wyjątki | Następna lekcja: Wysyłanie obrazka na serwer |