DESIGNER - для тех, кто делает сайты
 
поиск
 
статьи
баннерная реклама
веб-дизайн
графика
домены
инвентарь
менеджмент
навигация
проектирование
подкастинг
поисковые машины
почтовые рассылки
раскрутка
хостинг
css
flash
html
perl
php
usability
рассылка
Cтатьи о веб-дизайне, раскрутке, usability, графике и т.д.
Content.Mail.Ru
орфография
Если вы нашли любую орфографическую ошибку, то выделите её и нажмите Ctrl+Enter на клавиатуре.
 
 
 
 
статьи / php  

Как делать UPLOAD файлов на сервер и о возможных глюках

Русская документация - ссылка на параграф русской документации, посвещенной данной операции (не плачьте, читать не заставляем).

Что такое FILE UPLOAD?

Это возможность передать файлы с компьютера посетилеля в вашу ПХП программы. Это значит, вы получаете файл(ы) от посетителя и что-либо с ними делаете:

1. Отправка файла

Создайте файл upload.html такого содержимого:

<html><body>
<FORM ENCTYPE="multipart/form-data" ACTION="upload2.phtml" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"><!-- макс. размер -->
Имя файла: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Отправить">
(нажмите кнопку <b>ОБЗОР</b>, затем <b>ОТПРАВИТЬ</b>)
</FORM>
</body></html>

Получится пустая html-страница, содержащая форму: поле для ввода имени файла (ничего вводить не надо!), кнопку ОБЗОР, которая открывает окошко для выбора файла, кнопка ОТПРАВИТЬ - отправка формы на сервер.

Действия посетителя:

  • юзер нажимает обзор, выбирает файл(ы)
  • юзер нажимает отправить

"Программер" (вы) можете подредактировать

  • поле ACTION="upload2.phtml" (имя php-программы, принимающей файл)
  • поле name="MAX_FILE_SIZE" value="1000" - размер максимально допустимого размера файла для аплода.

2. Прием и использование

Ваша программа на php (в файле upload2.phtml), чтобы получить отправленный файл НЕ ДОЛЖНА НИЧЕГО ДЕЛАТЬ! Все само! Радуйтесь, товарищи :-)

Перед началом выполнений вашей программы сервер принимает файл, а ПХП-процессор сообщает имя временно файла (переменная $userfile), в котором храниться только что полученный файл. Поэтому вам нужно лишь открыть файл на чтение и считать содержимое. Даже стирать этот временный файл не надо.

Как вывести upload'еный файл на экран? Вот программа (ее надо записать в файл upload2.phtml )

<?
echo "

Вы загрузили файл размером:
<font color=red><b>$userfile_size</b></font> байт<br><br>

На вашем компьютере файл назывался:
<font color=red><b>$userfile_name</b></font><br><br>

На нашем сервере ваш файл был записан для временного храниения
по адресу и под именем:
<font color=red><b>$userfile</b></font><br><br>

Ниже его содержимое:
:<br> <font color=blue><pre>";

// для тех, кто не знает, команда echo implode("",file("имя_файла"));
// выводит содержимое "имя_файла" на экран

echo implode("",file($userfile));

?>

3. О глюках

Попробуйте аплодить таким способом на сервер бинарные файлы. Скорее всего файлы окажутся "битыми": фотки не будут показываться, программы не запустяться, архивы не распакуются. Текстовые файлы (почти точно) не повредяться. Дело в том, что Русский Апач (ваш веб-сервер) перекодирует все подряд. Например, символ с кодом 0х00 он заменяет на пробел (символ с кодом 0х20). Чтобы выключить эту ненужную перекодировку, допишите в файл httpd.conf из каталога Апача (/usr/local/apache) следующие строки. Если у вас нет доступа к этому файлу и админ сервера не может сделать это за вас, ткните его в эти строки.

<Location />
CharsetRecodeMultipartForms Off
</Location>

Строку CharsetRecodeMultipartForms Off можно добавлять в разные места (один раз). Если вы совсем начинающий пользователь и не решите сами, куда писать эту строку, будьте аккуратнее при решении задачи методом тыка.

http://www.php.spb.ru/

« Назад

 
вверх
При использовании любых материалов с сайта необходима ссылка на http://designer.kulichki.net/, как источник.
Copyright© 2001—2006
Основано 28.04.2001г.
Сергей Никитин
Rambler's Top100
Рейтинг@Mail.ru