[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипты для обработки принимаемых данных
Stuff_f
sad.gif Огромная просьба товарищи rolleyes.gif не пинайте меня, если кто знает эту статью уже, или что завел тему, в нетом месте, но для тех кто не читал такую статью думаю будет уместным и интересным!!!!


Скрипты для обработки принимаемых данных


Итак, посетитель сайта выбрал файл на своем диске и нажал на кнопку «Отпра-
вить». Теперь наша задача — обработать данные, переданные формой, и сделать
что-нибудь с передаваемым файлом. Для этого воспользуемся скриптом на РНР.
В РНР загрузка файлов осуществляется гораздо проще, нежели при помощи скрип-
тов, написанных на другом языке, например на Perl. Все дело в том, что в РНР есть
встроенный модуль, который и отвечает за загрузку. Конечно, можно поступить
и по аналогии с Perl: открывать входной поток данных, вычислять имя, получать
и писать данные в двоичном режиме и т. д. Однако гораздо удобнее воспользовать-
ся встроенным механизмом.
Как вы помните, в созданной нами форме переменная, которая передает имя фай-
ла, названа myf ilel. Если в качестве аргумента к параметру action в форме задан
PHP-скрипт, то в самом скрипте после передачи в него методом Post данных из
формы будут предопределены следующие переменные:

$myf ilel — имя (полно'е, с путем) временного файла, под которым были сохране-
ны загруженные на сервер данные;
$myf ilel_name — имя оригинального файла, под которым данные были у пользо-
вателя на диске;
$myf ilel_size — размер файла, который был загружен на сервер;
$myf ilel_type — MIME-тип файла пользователя.
Имея такие переменные, можно написать скрипт, обрабатывающий загрузку файла:
<? move_uploaded_file($userfile, "/download/$userfile_name"); ?>
Если вы укажете такой скрипт, состоящий только из одной строчки, в action, он
примет файл, поместит его во временный каталог, «вычислит» оригинальное имя
этого файла и скопирует в каталог /download/.
Дополнительно можно показать сообщение о том, что файл был успешно загружен,
а также проконтролировать, с тем ли расширением был загружен файл, имеет ли он
тот content-type, не превышает ли он максимально допустимый размер и т. д.
move_uploaded_file — встроенная функция последних версий РНР. Обратите вни-
мание, что файл, который мы загружаем во временный каталог, доступен исклю-
чительно во время запроса на загрузку. После этого РНР уничтожит данный файл.
А это значит, что после загрузки файла необходимо обязательно куда-нибудь пере-
местить полученный файл, иначе вы его потеряете.

если возникнут трудности



При использовании этой технологии не забудьте предварительно убедиться, что
функция загрузки файлов включена администратором сервера в число доступных.
Если администрируете вы сами, то просто отредактируйте конфигурационный файл РНР (php. ini): проверьте, установлена ли опция f ile_uploads в значение «On»,
Также в этом файле можно отрегулировать максимальный размер загружаемых фай-
лов по HTTP. За это отвечает опция upload_max_f ilesize.







Спустя 13 минут, 57 секунд (11.06.2009 - 19:56) kirik написал(а):
Stuff_f
ща будем пинать за дезинформацию! smile.gif

Цитата (Stuff_f @ 11.06.2009 - 11:42)
$myf ilel — имя (полно'е, с путем) временного файла, под которым были сохране-
ны загруженные на сервер данные;
$myf ilel_name — имя оригинального файла, под которым данные были у пользо-
вателя на диске;
$myf ilel_size — размер файла, который был загружен на сервер;
$myf ilel_type — MIME-тип файла пользователя.

Во-первых.. что это за названия переменных?
Во-вторых, даже если предположить что имя переменной $myfile_size, то в ней ничего не будет содержаться...

И чем тебе не нравится актуальная статья на эту же тему на php.net?

Спустя 9 минут, 32 секунды (11.06.2009 - 20:06) twin написал(а):
kirik

В этой статье тоже не все гладко. Понятное дело, что она написана для примера, как работает передача и перемещение. А в тонкости там по определению не вдаются. По этому может и не понравилась biggrin.gif
Допустим такой момент. Иногда расширение файла задано заглавными буквами. Винда их спокойно видит, а вот загрузить таким способом фиг.

Спустя 14 минут, 33 секунды (11.06.2009 - 20:21) kirik написал(а):
Цитата (twin @ 11.06.2009 - 12:06)
Иногда расширение файла задано заглавными буквами. Винда их спокойно видит, а вот загрузить таким способом фиг.

Прошу прощения, почему "фиг"? smile.gif

Спустя 48 минут, 11 секунд (11.06.2009 - 21:09) twin написал(а):
Я чесно говоря в подробности не вдавался... Может это не везде так, просто на одном хостинге у меня вообще нельзя верхний регистр использовать. Наверно по этому не хочет. Но все равно тонкость...

Спустя 5 часов, 31 минута, 20 секунд (12.06.2009 - 02:40) Alchemist написал(а):
у меня тоже вопрос: разве можно
Цитата (Stuff_f @ 11.06.2009 - 18:42)
...открывать входной поток данных, вычислять имя, получать и писать данные в двоичном режиме...

? насколько я помню, пхп загружает файлы еще до того как запускает скрипт...

Спустя 1 час, 23 минуты, 57 секунд (12.06.2009 - 04:04) kirik написал(а):
наверное это имелось ввиду..


_____________
Мы, рабы времени, нужно узнать в жизни все.
Потому, что жизнь это болезнь, передающаяся половым путем!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.