kirsav
Новичок
Дата регистрации:
13.06.2013 18:12:44
Сообщений: 6
Есть форма с радиочекером и кнопкой отправки. При нажатии на кнопку мне нужно дать скачать выбранный файл и после этого загрузить другую страницу. Функцию скачивания файла подсмотрел на этом сайте :
function download($filename) {
if (file_exists($filename)) {
/* Если файл существует */
header("Content-Disposition: attachment; filename=" .basename($filename) . ";" // Указываем имя при сохранении в браузере
echo file_get_contents($filename); // Отдаём файл пользователю на скачивание
}
else echo "Not Found"; // Если файла не существует
}
Но после скачивания остается открытой та же страница с выбором. Причем форма обробатывается в той странице, которая должна появиться по замыслу. Вероятно, дело тут в header, после него уже ничего не происходит. Посоветуйте, пожалуйста, что-нибудь умное.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Нельзя на одной странице одновременно отдавать файл и на ней же сразу показать какой-то контент. Поэтому тут всегда открывают страницу с ссылкой, а эту ссылку уже ведёт на страницу с этим скриптом, где и скачивается файл.
kirsav
Новичок
Дата регистрации:
13.06.2013 18:12:44
Сообщений: 6
Спасибо за быстрый ответ. А можно как-то автоматизировать этот процесс? Чтобы пользователь просто нажал кнопку, а все остальное происходило без его участия?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Можно через JavaScript сделать на странице с контентом: window.location.href = url; - тогда автоматически начнётся скачивание файла.
kirsav
Новичок
Дата регистрации:
13.06.2013 18:12:44
Сообщений: 6
Спасибо огромное, буду пробовать.