"как сделать загрузку файлов на сервер на php ?"


Страницы: 1
Пользователь: wozzz
Сообщений: 8
Статус: Пользователь
Зарегистрирован:
16 декабря 2008, 6:22
Был:20 января 2009, 8:36
wozzz
smsup
Дата: 16 декабря 2008, 7:14 Сообщение № 1
как сделать загрузку файлов на сервер на php ?
Пользователь: wozzz
Сообщений: 8
Статус: Пользователь
Зарегистрирован:
16 декабря 2008, 6:22
Был:20 января 2009, 8:36
wozzz
smsup
Дата: 16 декабря 2008, 7:16 Сообщение № 2
Приложение для загрузки файлов на сервер представляет собой HTML-форму (upload.html) и скрипт upload.php для ее обработки.

Замечание: Upload бинарных файлов (картинок, архивов, программ и т.д.) стандартным методом часто приводит к тому, что файлы оказываются "битыми". Это связано с любовью Апача к всевозможным перекодировкам. Для того, чтоб он этим не занимался, допишите в файл httpd.conf следующее:

<Location />
CharsetRecodeMultipartForms Off
</Location>
Код формы (upload.html)

Код на HTML
  1. <html>
  2. <head>
  3. <title>Загрузка файлов на сервер</title>
  4. </head>
  5. <body>
  6. <h2><p><b> Форма для загрузки файлов </b></p></h2>
  7. <form action="upload.php" method="post" enctype="multipart/form-data">
  8. <input type="file" name="filename"><br>
  9. <input type="submit" value="Загрузить"><br>
  10. </form>
  11. </body>
  12. </html>
При использовании обязательна ссылка на http://DMTSoft.ru

Код скрипта обработки формы (upload.php)

Код на PHP
  1. <html>
  2. <head>
  3. <title>Результат загрузки файла</title>
  4. </head>
  5. <body>
  6. <?php
  7. if($_FILES["filename"]["size"] > 1024*3*1024)
  8. {
  9. echo ("Размер файла превышает три мегабайта");
  10. }
  11. if(copy($_FILES["filename"]["tmp_name"],
  12. "c:/temp/".$_FILES["filename"]["name"]))
  13. {
  14. echo("Файл успешно загружен <br>");
  15. echo("Характеристики файла: <br>");
  16. echo("Имя файла: ");
  17. echo($_FILES["filename"]["name"]);
  18. echo("<br>Размер файла: ");
  19. echo($_FILES["filename"]["size"]);
  20. echo("<br>Каталог для загрузки: ");
  21. echo($_FILES["filename"]["tmp_name"]);
  22. echo("<br>Тип файла: ");
  23. echo($_FILES["filename"]["type"]);
  24. } else {
  25. echo("Ошибка загрузки файла");
  26. }
  27. ?>
  28. </body>
  29. </html>
При использовании обязательна ссылка на http://DMTSoft.ru

Атрибут 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, а броузер выдаст фразу: Файл успешно загружен

Страницы: 1