Приложение для загрузки файлов на сервер представляет собой HTML-форму (upload.html) и скрипт upload.php для ее обработки.
Замечание: Вы можете загрузить промышленную версию системы загрузки файлов на сервер из раздела downloads. Система Image Java Editor позволит вам не только загрузить файл на сервер, но и изменить его размер, фон и др.
Код формы (upload.html)
1 2 3 4 5 6 7 8 9 10 11 12 |
<html> <head> <title>Загрузка файлов на сервер</title> </head> <body> <h2><p><b> Форма для загрузки файлов </b></p></h2> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="filename"><br> <input type="submit" value="Загрузить"><br> </form> </body> </html> |
Код скрипта обработки формы (upload.php)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<html> <head> <title>Результат загрузки файла</title> </head> <body> <?php if($_FILES["filename"]["size"] > 1024*3*1024) { echo ("Размер файла превышает три мегабайта"); exit; } // Проверяем загружен ли файл if(is_uploaded_file($_FILES["filename"]["tmp_name"])) { // Если файл загружен успешно, перемещаем его // из временной директории в конечную move_uploaded_file($_FILES["filename"]["tmp_name"], "/path/to/file/".$_FILES["filename"]["name"]); } else { echo("Ошибка загрузки файла"); } ?> </body> </html> |
Атрибут entype формы определяет вид кодировки, которую браузер применяет к параметрам формы. Для того чтобы отправка файлов на сервер действовала, атрибуту entype необходимо присвоить значение multipart/form-data. По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.
Элемент ввода этой формы должен иметь тип file.
После того, как получен HTTP-запрос, содержимое загруженного файла записывается во временный файл, который создается в каталоге сервера, заданном по умолчанию для временных файлов, если другой каталог не задан в файле php.ini (директива upload_tmp_dir).
Характеристики загруженного файла доступны через двумерный массив $_FILES.
Cкрипт upload.php загружает файл на сервер и копирует его в каталог /path/to/file/.
В некоторых случаях требуется ограничить размер файла, который может быть загружен на сервер. К примеру, чтобы разрешить загрузку на сервер только файлов с размером не более 3 Мбайт, в приведенном скрипте содержится код:
1 2 3 4 5 6 7 8 9 |
<?php ... if($_FILES["filename"]["size"] > 1024*3*1024) { echo("Размер файла превышает три мегабайта"); exit; } ... ?> |
1 2 3 4 5 |
<?php ... if($_FILES["filename"]["size"] > upload_max_filesize) .. ?> |