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

 
Как создать сайт
 
  Меню  
   
     
  как создать сайт. Статьи  
 
хостинг (6)
дизайн (9)
раскрутка сайта (8)
домены (7)
поисковики (11)
html (11)
php (6)
разное (2)
 
     
  Новые статьи  
  Новые статьи на тему "как создать сайт":

создать форум

Использование Google Sitemaps

Просто о продвижении сайтов. Часть Первая.

 
     
  TOP Хостинг  
 
 
     
  Разделы  
   
     
  Ссылки  
  Хочешь добиться успеха в жизни - обучение управленческий учет. Управление финансами.  
     
  Личная панель  
  Здравствуйте, Гость, для доступа к личной панели вы должны зарегистрироваться. Если вы зарегистрированы, пожалуйста, войдите.  
     
  Счетчики, ссылки  
  Rambler's Top100 Рейтинг@Mail.ru +
карта сайта
 
     
  как делать upload файлов на сервер и о возможных глюках  
 
Пользовательского поиска

разработка сайтов

разработка и создание сайтов

Если у вас возникнут вопросы по языку php или просто по созданию сайтов, смело обращайтесь к нам на форум в раздел "создание сайтов". Вам обязательно ответят (мы гарантируем!).

Думаю веб мастерам будет интересен такой вид заработка, как игра на валютной бирже, в последнее очень популярный в интернете. Читайте статьи раздела forex.


как создать сайт / Статьи / php / как делать upload файлов на сервер и о возможных глюках

Вернуться в раздел "php"

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

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

Что такое FILE UPLOAD?

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

  • ничего (человек в пустую будет 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

Вернуться в раздел "php"
Обсудить эту статью или задать вопрос вы можете на форуме .

Пользовательского поиска


Добавить статью
 
     
  Комментарии  
 

Добавление комментария

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

Только участники портала могут оставлять комментарии. Чтобы иметь возможность оставить комментарий, пожалуйста зарегистрируйтесь. Если вы уже зарегистрированы на сайте, то авторизируйтесь.
 
     
 
© http://sitehelp.ru 2006