Upload, czyli wysyłanie pliku na serwer

Coś jest niejasne? Wejdź na Forum PHP i uzyskaj pomoc

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