Ветеран
Сообщения: 1864
Благодарности: 120
|
Профиль
|
Отправить PM
| Цитировать
Пример загрузки файлов на сервер (upload) на языке php
PHP код:
Приложение для загрузки файлов на сервер представляет собой HTML-форму
(upload.html) и скрипт upload.php для ее обработки.
Код формы (upload.html)
<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)
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if($HTTP_POST_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($HTTP_POST_FILES["filename"]["tmp_name"],
"c:/temp/".$HTTP_POST_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($HTTP_POST_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($HTTP_POST_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($HTTP_POST_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($HTTP_POST_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
%>
</body>
</html>
Атрибут entype формы определяет вид кодировки, которую браузер применяет к параметрам формы. Для того чтобы отправка файлов на сервер действовала, атрибуту entype необходимо присвоить значение multipart/form-data. По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.
Элемент ввода этой формы должен иметь тип file.
После того, как получен HTTP-запрос, содержимое загруженного файла записывается во временный файл, который создается в каталоге сервера, заданном по умолчанию для временных файлов, если другой каталог не задан в файле php.ini (директива upload_tmp_dir).
Характеристики загруженного файла доступны через двумерный массив HTTP_POST_FILES.
Cкрипт upload.php загружает файл на сервер и копирует его в каталог /temp/. Внимание! В демонстрационном примере файл загружается на диск С в директорию /temp. Поэтому в реальной работе на сервере замените путь c:/temp на тот, который нужен.
После выполнения этого скрипта выбранный для загрузки файл будет помещен в каталог c:/temp, а броузер выдаст фразу: Файл успешно загружен
В некоторых случаях требуется ограничить размер файла, который может быть загружен на сервер. К примеру, чтобы разрешить загрузку на сервер только файлов с размером не более 3 Мбайт, в приведенном скрипте содержится код:
if($HTTP_POST_FILES["filename"]["size"] > 1024*3*1024)
{
echo("Размер файла превышает три мегабайта");
exit;
}
Максимальный размер загружаемого файла можно также задать при помощи директивы upload_max_filesize, значение которой по умолчанию равно 2 Мбайт:
if($HTTP_POST_FILES["filename"]["size"] > upload_max_filesize)
|
-------
Fortes fortuna adiuvat
Отправлено: 23:22, 15-08-2005
| #5
|