Принудительное сохранение файла по ссылке.

trofim

Новичок
Принудительное сохранение файла по ссылке.

Проблема идиотская. Разработал сайт для компании, в котором ссылка на прайс-лист была прямая. http://site/price.xls
И все было хорошо, пока у одного менеджера не получилось этот прайс сохранить. IE просто брал и сам его открывал, не предлагая сохранить на диске. Высшее гуманитарное образование менеджера не позволяло ему выполнить эту операцию через меню файл\сохранить как, и поэтому я был поставлен перед задачей: сделать так, чтобы по ссылке всегда предлагалось сохранить файл или открыть его.
Решение, конечно, нашлось. И довольно простое. Вот файл download.php:
PHP:
<?php
header("Content-Disposition: attachment; filename=price.xls");
header("Content-Length: ".filesize("price.xls"));
header('Content-Type: application/x-force-download; name="price.xls"');
readfile("price.xls");
exit;
?>
Полтора года все были счастливы. Но встала необходимость сделать подобный сайт для филиала этой компании. Я, естественно, оставил все прежний скрипт скачивания прайса. И тут меня стали добивать уже менеджеры филиала с претензией, что у них файл сохраняется с расширением .php! Как у них это могло произойти, я, хоть убейте, не понимаю. Подобного эффекта я смог добиться только в Firefox'е через контекстное меню.
Кто-нибудь может мне объяснить, как после строк
PHP:
header("Content-Disposition: attachment; filename=price.xls");
header('Content-Type: application/x-force-download; name="price.xls"');
браузер может думать, что он качает файл php?
 

fixxxer

К.О.
Партнер клуба
есть старый трюк :)
http://blablabla/download.php/price.xls
работает, правда, только с mod_php
 

Фанат

oncle terrible
Команда форума
а каким именно образом оно должно работать с mod_rewrite?
 

trofim

Новичок
Автор оригинала: Кром
А какой броузер используют эти менеджеры?
Все эти несчастные используют, конечно, IE. Но к конкретному браузеру привязываться не хочется. Если не смотреть вообще на странность ситуации: пишется серверный скрипт, правильность выполнения которого зависит от браузера..

-~{}~ 28.06.06 18:10:

Автор оригинала: Фанат
а каким именно образом оно должно работать с mod_rewrite?
реврайтишь эту строку в http://site/download.php?file=price.xls, к примеру))
 

Фанат

oncle terrible
Команда форума
Если не смотреть вообще на странность ситуации: пишется серверный скрипт, правильность выполнения которого зависит от браузера..
Действительно! Безобразие какое!
И на дорогах то же самое: Строится дорога, а машины по ней ежут по-разному, одна быстрее, другая медленнее! Что за непорядок? Это явно дорога виновата!

-~{}~ 28.06.06 18:11:

реврайтишь эту строку в http://site/download.php?file=price.xls, к примеру))
зачем?
 

trofim

Новичок
Автор оригинала: Фанат
Действительно! Безобразие какое!
И на дорогах то же самое: Строится дорога, а машины по ней ежут по-разному, одна быстрее, другая медленнее! Что за непорядок? Это явно дорога виновата!
Ну вообще по этой дороге (скрипту) ездит только одна машина (серверный обработчик php).

Автор оригинала: Фанат
зачем?
действительно, это лишнее))
только не догоню как это работает..
 

fixxxer

К.О.
Партнер клуба
никаких реврайтов.
хинт: http://phpclub.ru/talk/index.php/price.xls
 

Фанат

oncle terrible
Команда форума
Ну вообще по этой дороге (скрипту) ездит только одна машина (серверный обработчик php).
да что ты говоришь! только обработчик? Ну и прекрасно! Этот самый ораобтчик всегда выдаёт один и тот же результат. Значит, у тебя никаких проблем нет. С чем тебя и поздравляю
 
Сверху