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