[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание файла с сервера
Jhony
Доброго всем времени суток!
Я написал скрипт для скачивания файла с сервера с помощью Header('Location: ...'). Но непонятно скачивает он его или нет. А если и скачивает то непонятно где сохраняет!
И вот я хотел бы узнать можно ли как-нибудь намутить скрипт, который при нажатии на какую-нибудь ссылку на странице выкидывал модальное окно, где можно было бы выбрать нужную папку и нажать "Сохранить" (ну вобщем как при обычно скачивании в InternetExplore).
Если у кого-то есть предложения буду рад их выслушать...Спасибо.



Спустя 49 минут, 16 секунд (5.04.2011 - 09:17) waldicom написал(а):
Нет, так нельзя. А то-бы скрипткидсы вирусяк понаписали бы...

Спустя 4 минуты, 40 секунд (5.04.2011 - 09:22) Guest написал(а):
Хорошо! А как тогда в Header() прописать путь куда именно сохранить файл?

Спустя 5 минут, 5 секунд (5.04.2011 - 09:27) kirik написал(а):
Цитата (Guest @ 5.04.2011 - 01:22)
А как тогда в Header() прописать путь куда именно сохранить файл?

Никак smile.gif

Спустя 6 минут, 13 секунд (5.04.2011 - 09:33) Guest написал(а):
А каким образом тогда устроенно обычное скачивание?

Спустя 8 минут, 32 секунды (5.04.2011 - 09:41) kirik написал(а):
Цитата (Guest @ 5.04.2011 - 01:33)
А каким образом тогда устроенно обычное скачивание?

Посылаешь клиенту заголовки (как ты делал), клиентский браузер выдаёт окошко, где пользователь выбирает куда сохранить файл, и сохраняет файл smile.gif

Спустя 8 часов, 6 минут, 26 секунд (5.04.2011 - 17:48) Jhony написал(а):
Цитата (kirik @ 5.04.2011 - 06:41)
Цитата (Guest @ 5.04.2011 - 01:33)
А каким образом тогда устроенно обычное скачивание?

Посылаешь клиенту заголовки (как ты делал), клиентский браузер выдаёт окошко, где пользователь выбирает куда сохранить файл, и сохраняет файл :)

kirik
Используб вот этот код:
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ". filesize ($f));
header ("Content-Disposition: attachment; filename=".$n);
header ("Location : $f");

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

Спустя 42 минуты, 55 секунд (5.04.2011 - 18:31) eXaM написал(а):
Ну, это уж, наверное, с браузером что-то. Ну, или сервер файл отдавать не хочет. Я бы попробовал скачать файл, перейдя по ссылке на файл. Кстати, а зачем это:
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');

? Разве этот заголовок не посылается автоматически? Или это у вас сервер так настроен?

Спустя 1 час, 32 минуты, 58 секунд (5.04.2011 - 20:04) Jhony написал(а):
Цитата (eXaM @ 5.04.2011 - 15:31)
Ну, это уж, наверное, с браузером что-то. Ну, или сервер файл отдавать не хочет. Я бы попробовал скачать файл, перейдя по ссылке на файл. Кстати, а зачем это:
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');

? Разве этот заголовок не посылается автоматически? Или это у вас сервер так настроен?

eXaM
Убрал эту идиотскую строчку сразу же заработло!) Спасибо большое! Дело в том, что я PHP только начал осваивать, ну и ещё не совсем разобрался. А эту строчку я нашел на одном сайте, где был выложен алгоритм по скачиванию. Я сам не понял что она делает, но решил оставить для надежности smile.gif

Спустя 32 минуты, 49 секунд (5.04.2011 - 20:36) eXaM написал(а):
Честно говоря, я и не догадывался, что это в ней дело. Но теперь, кажется, понятно, в чем была проблема. Заголовок «HTTP/1.1 200 OK» означает, что страница успешно загружена и все хорошо. Видимо, после такого заголовка сервер больше не отдает файлы, и в ответ за новый запрос (который посылается, когда жмете «Сохранить»), ничего не происходит.

Спустя 1 час, 28 секунд (5.04.2011 - 21:37) Trianon написал(а):
Функция header ("Location : $f"); формирует статус отклика совершенно отличный от 200.
Да и само поле Location: в этом статусе смысла не имеет.

Спустя 10 минут, 22 секунды (5.04.2011 - 21:47) eXaM написал(а):
А я и не отрицаю. Ведь при использовании заголовка Location страница и не загружается, а значит, 200 не может быть. Он по идее будет только на той странице, которая указана в Location. Если там все будет хорошо, конечно.

Спустя 3 часа, 43 минуты, 36 секунд (6.04.2011 - 01:31) Trianon написал(а):
eXaM
Я, собственно, предыдущее сообщение скорее Johny адресовал smile.gif
Быстрый ответ:

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