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

Форма входа
E-mail:
Пароль:

Поиск

Новости

Мини-чат
50

Главная

Регистрация

Вход
Приветствую Вас Гость | RSS


LILIANA.NET.UA


Суббота, 19.05.2012, 01:46
Главная » Статьи » php

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

Как делать 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/

Категория: php | Добавил: Player (08.05.2007)
Просмотров: 816 | Рейтинг: 0.0/0
Всего комментариев: 1
0  
1 Esis   (03.06.2008 23:44)
уважаемый автор, Вы уж извините, но где здесь собственно сам аплоад файла? временный файл уничтожается сразу после окончания работы скрипта, и на сервере ничего не остается. какой практический толк-то от Вашего примера? созерцание содержимого временного файла в окне браузера?)) ну можно же было написать хотя бы пару строк про массив $_FILES и то, как с ним работать? тема-то обязывает как-никак. а вы об этом ни словом не обмолвились.

Имя *:
Email:
Код *:
Меню сайта

Категории видео
usability [19]
php [11]
perl [4]
html [42]
flash [12]
css [10]
хостинг [5]
раскрутка [13]
почтовые рассылки [5]
поисковые машины [19]
подкастинг [2]
проектирование [10]
навигация [4]
менеджмент [13]
инвентарь [12]
домены [3]
графика [87]
веб-дизайн [14]
баннерная реклама [2]

Новости

Наш опрос
Что хочется видеть на нашем сайте
Всего ответов: 11

Друзья сайта

Статистика











Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright http://master-pk.od.ua © 2007- 2012 Хостинг от uCoz