![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ST_Falcon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 14.11.2003 Где: Львов Репутация: нет Всего: 1 |
в силу своей врожденной недальновидности я не могу сходу догадаться каким образом работают всевозможные файловые порталы. вот непонимаю я каким образом даем человеку линк на php скрипт, а в результате он получает файл... интуиция подсказывает что ничего сложного там нету.
может кто то популярно объяснит основные принципы или даст линк на хорошие статьи. буду очень признателен за помощь ![]() |
|||
|
||||
ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 8 Всего: 18 |
В скрипте необходимо сделать две вещи:
1. передать заголовки браузеру, что сейчас он получит файл, а не html-страницу 2. непосредственно направить содержимое файла браузеру. Пример, реализующий эти вещи:
|
|||
|
||||
Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Если нужно реализовать возможность докачки, нужно будет еще дополнительно поработать с заголовками, чтобы реализовать отдачу файла чанками: анализировать заголовки запроса, есть ли там HTTP_RANGE, отдавать соответствующий ситуации код 200 или 206, сообщать броузеру заголовком, какая именно часть файла передается, ну и выдавать в содержимом не весь файл, а нужную часть.
Еще неплохо бы учесть cache-control. Но в целом, пример ewolf дает хорошее представление о сути задачи. HTML Вы передаете, файл, текст, картинку... по HTTP, броузер интерпритирует, в основном, по HTTP-заголовкам, которые ему пришли. Соответственно отдавайте такие заголовки, чтобы броузер "думал", что ему пересылают файл, и пересылайте его содержимое. Можете посмотреть реализацию в PEAR-овском HTTP_Download -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |