Я написал скрипт для скачивания файла с сервера с помощью 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() прописать путь куда именно сохранить файл? |
Никак

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

Спустя 8 часов, 6 минут, 26 секунд (5.04.2011 - 17:48) Jhony написал(а):
Цитата (kirik @ 5.04.2011 - 06:41) | ||
Посылаешь клиенту заголовки (как ты делал), клиентский браузер выдаёт окошко, где пользователь выбирает куда сохранить файл, и сохраняет файл :) |
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 только начал осваивать, ну и ещё не совсем разобрался. А эту строчку я нашел на одном сайте, где был выложен алгоритм по скачиванию. Я сам не понял что она делает, но решил оставить для надежности

Спустя 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: в этом статусе смысла не имеет.
Да и само поле Location: в этом статусе смысла не имеет.
Спустя 10 минут, 22 секунды (5.04.2011 - 21:47) eXaM написал(а):
А я и не отрицаю. Ведь при использовании заголовка Location страница и не загружается, а значит, 200 не может быть. Он по идее будет только на той странице, которая указана в Location. Если там все будет хорошо, конечно.
Спустя 3 часа, 43 минуты, 36 секунд (6.04.2011 - 01:31) Trianon написал(а):
eXaM
Я, собственно, предыдущее сообщение скорее Johny адресовал
Я, собственно, предыдущее сообщение скорее Johny адресовал
