Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: форма закачки
Показать сообщение отдельно

Аватара для vadimiron

Ветеран


Сообщения: 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

Название темы: форма закачки