Jak obsłużyć upload plików na serwer przez użytkowników ?
Upload plików w PHP jest bardzo prosty. Najpierw potrzebujemy formularza dzięki któremu użytkownik będzie mógł wybrać plik do wgrania na serwer:
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Wybierz plik który chcesz umieścić na serwerze:<br>
<input type="file" name="pliczek" size="40"><br>
<input type="submit" value="Wgraj plik">
|
Ukryte pole formularza MAX_FILE_SIZE określa oczywiście maksymalny rozmiar pliku jaki może być uploadowany w bajtach.
Teraz czas na obsługę uploadu czyli w przypadku tego formularza plik upload.php. Gwoździem programu jest funkcja move_uploaded_file. jako pierwszy
argument podajemy tymczasową nazwę uplodowanego pliku, a jako drugi nazwę, gdzie chcemy go zachować. Skąd wziąść tą pierwszą ? Z tablicy $_FILES.
Przykład:
<?
move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$_FILES['pliczek']['name']);
?>
|
Plik zostanie zapamiętany w katalogu pliki, pod taką nazwą pod jaką został uploadowany. Pamiętaj, że katalog w którym zapamiętujesz pliki
musi mieć odpowiednie prawa zapisu (chmod 777 pliki). A co jeszcze można znaleźć w tej tajemniczej tablicy _$FILES ?
| name | Nazwa uplodowanego pliku |
| tmp_name | Tymczasowa nazwa pliku przydzielona przez serwer |
| size | Rozmiar w bajtach |
| type | Typ pliku np. image/jpeg |
| error | kod błędu jeżeli jakiś wystąpił. Jeżeli nie przyjmuje wartość 0. |
I na koniec jeszcze słówko o przydatnej funkcji is_uploaded_file która powie nam czy plik wogóle został wgrany. Jako argument podajemy w naszym przypadku
$_FILES['pliczek'].
<?
if (!is_uploaded_file($_FILES['pliczek']))
die ('Nie wgrano żadnego pliku');
?>
|
Zobacz także: http://pl2.php.net/manual/en/features.file-upload.php.
|