Регистрация Статистика Контакты Реклама Правила
«    Май 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
3d, 6 соток, action, house, mp3, pop, va, видео, дача, девушки, делай сам, документальный, досуг, драма, журнал, журналы, игры, клипы, книги, комедия, компьютерные, музыка, новости, обои, огород, поп, программы, разные, растения, сад, сборник, советы, умелые руки, усадьба, фильмы, фото, хобби, хозяйство, цветник, цветы

Показать все теги
Maxim №12 декабрь 2011 Украина
Maxim №12 декабрь 2011 Украина
Домашний ПК №11 ноябрь 2011
Домашний ПК №11 ноябрь 2011
Веселый колобок №6 июнь 2011
Веселый колобок №6 июнь 2011
Need for Speed: The Run (Трейлер/2011/HD)
Need for Speed: The Run (Трейлер/2011/HD)
Battlefield 3 Update 1 (2011/RUS)
Battlefield 3 Update 1 (2011/RUS)
 
Навигация по сайту
   
 

PHP: Загрузка одного и нескольких файлов на сервер средствами php

 

В этой статье я расскажу и приведу примеры по загрузке одного или нескольких файлов на сервер, средствами php. Как создать форму для загрузки файлов php. Как создать обработчик данных для загрузки файлов.
Загрузка файлов осуществляется через форму, которая имеет параметр enctype="multipart/form-data", а также поля type="file".

Пример формы:

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="name_file">
<input type="submit" value="Загрузить">
</form>

По этой форме видно, что данные для обработки будут переданы index.php.

Содержимое файла обработки:

$filedir= dirname(__FILE__); //Узнаем каталог обработчика, в нашем случае index.php

$upload=$filedir.DIRECTORY_SEPARATOR."upload".DIRECTORY_SEPARATOR.$_FILES['name_file']['name']; //Директория загрузки файлов. В нашем случае загрузка осуществится в папку upload, которая находится на одном уровне с index.php.

if(move_uploaded_file($_FILES[‘name_file ']['tmp_name'], $upload)){ //Копируем файл в директорию которая указана выше.

chmod($upload,0666); // Выставляем права на загруженный файл

Print ("Файл ".$_FILES['name_file']['name']." успешно загружен"); //Выводим сообщение, если файл успешно загружен.

}
else{

Print ("Ошибка загрузки ".$_FILES['name_file']['name']); //Выводим сообщение если файл загружен с ошибкой.

}

Теперь более подробно о суперглобальном массиве $_FILES и его содержимом. $_FILES[‘Имя поля в форме'][‘содержимое']

  • $_FILES['name_file']['name'] - имя файла до отправки его на сервер
  • $_FILES['name_file']['size'] - размер отправленного файла в байтах
  • $_FILES['name_file']['type'] - MIME-тип отправленного файла (если браузер смог его определить).
  • $_FILES['name_file']['tmp_name'] - имя файла во временном каталоге.
  • $_FILES['name_file']['error'] - Код ошибки, которая может возникнуть при загрузке файла.

Виды ошибок $_FILES['']['error']:

  • UPLOAD_ERR_OK Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер. 
  • UPLOAD_ERR_INI_SIZE Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini
  • UPLOAD_ERR_FORM_SIZE Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.
  • UPLOAD_ERR_PARTIAL Значение: 3; Загружаемый файл был получен частично. 
  • UPLOAD_ERR_NO_FILE Значение: 4; Файл не загружен.

Также хочется отметить, что возможно загрузка нескольких файлов, для этого нужно использовать различные значения name для тега input или можно автоматически получить организованной в массив информации о нескольких одновременно загружаемых файлах. Для этого используется тот же синтаксис отправки массива из HTML-формы, что и для множественных полей select и checkbox.

Пример формы загрузки нескольких файлов:

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="name_file[]">
<input type="file" name="name_file[]">
<input type="file" name="name_file[]">
<input type="submit" value="Загрузить">
</form>

Теперь данные переданные из такой формы будут иметь такой вид:

  • $_FILES['name_file']['name'][0] - имя первого файла до отправки его на сервер
  • $_FILES['name_file']['name'][1] - имя второго файла до отправки его на сервер
  • $_FILES['name_file']['name'][2] - имя третьего файла до отправки его на сервер

Аналогичными будут переменные $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] и $_FILES['userfile']['type'][0], $_FILES['name_file']['error'][0]
Напоследок хочется отметить, что загрузка бинарных файлов (картинок, архивов, программ и т.д.) стандартным методом часто приводит к тому, что файлы оказываются "битыми". Это связано с настройками Apache к перекодировкам. Для того, чтоб такого не случалось, допишите в файл httpd.conf следующие данные:

<Location />
CharsetRecodeMultipartForms Off
</Location>


Также в файле php.ini имеет всего три параметра, связанные с загрузкой файлов на сервер:

  • file_uploads=On - разрешает загрузку файлов на сервер по протоколу HTTP
  • upoad_tmp_dir=/tmp - устанавливает каталог для временного хранения загруженных файлов
  • upload_max_filesize=2M - устанавливает максимальный объем загружаемых файлов

 

При копирования этой статьи ссылка на brupt.ru обязательна.

 
 
 
 
 
 
Автор: Александр(Брупт)


Внимание! Перед просмотром страницы "Загрузка одного и нескольких файлов на сервер средствами php" рекомендуем ознакомится с правилами. Если вы обнаружили не рабочую ссылку, или какие-то недочеты в новости "Загрузка одного и нескольких файлов на сервер средствами php" напишите комментарий ниже.

Инструкции:Рекомендуем:
Категории новости: Статьи » Программирование » PHP
Ключевые слова новости: статьи, php, наши новости
Рекомендуем зарегистрироваться либо войти на сайт под своим именем.
 
 
   
 

Информация
  Посетители, находящиеся в группе Гость, не могут оставлять комментарии в данной новости.  
 
 
Рекомендуем
   
Регистрация Статистика Контакты Реклама Правила
Развлекательный портал » Статьи » Программирование » PHP » PHP - Загрузка одного и нескольких файлов на сервер средствами php

Развлекательный портал Brupt.RU - это один из лучших развлекательных порталов, на нем Вы найдете новости, статьи, электронные и аудио книги, программы, игры, музыку, фото, видео, sms приколы, скрипты и много интересного и познавательного для всех возрастов и интересов!