Где браузер получает название для загрузки? - PullRequest
1 голос
/ 17 августа 2011

Я работаю над сайтом, чтобы получить несколько страниц книги и сделать ее одним файлом для мобильных пользователей.Сайт находится по адресу http://bookgrabber.comze.com.. Сейчас я предоставляю ссылку для скачивания готовой книги.Ссылка для скачивания на самом деле является ссылкой на downloadBook.php.Все работает довольно хорошо и, как и ожидалось, но когда вы нажимаете «сохранить ссылку как», первое слово в названии книги появляется в диалоговом окне «Сохранить как» ... Откуда это происходит, чтобы я мог его изменить?Он не отображается в html-странице ...

Вот что находится на странице downloadBook.php:

header('Content-disposition: attachment; filename='.$_SESSION['bookName'].'.html');
header('Content-type: application/html');
echo $_SESSION['book'];

Спасибо, Тодд

1 Ответ

4 голосов
/ 17 августа 2011

Это то, для чего предназначена ваша первая строка header: скажите браузеру, что файл должен быть загружен, а не отображен, и скажите ему, каким должно быть имя файла.

header('Content-disposition: attachment; filename='.$_SESSION['bookName'].'.html');

Это filename= часть говорит браузеру, каким должно быть имя файла.Он обрезается в первом пробеле (только с первым словом), потому что имена с пробелами должны быть заключены в двойные кавычки в заголовке Content-disposition:

header('Content-disposition: attachment; filename="'.$_SESSION['bookName'].'.html"');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...