Я бы хотел, чтобы пользователь загрузил файл, когда он нажимает на 'скачать этот файл' link.Как заставить скачать файл с помощью PHP?
Использование: Пользователь нажимает на ссылку, а веб-приложение создает файл и «подталкивает» его как загрузку.
У меня есть следующий код PHP. Хотя файл генерируется правильно на сервере, он не загружается (и не показывает диалоговое окно загрузки).
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Transfer-Encoding: binary");
readfile('file.zip');
Я попытался добавить следующее, но он не работает:
header("Location: file.zip"); // not working
Хотя, я нашел решение JavaScript (который работает), пытаясь следующий редирект:
window.location.href = 'file.zip';
Проблема заключается в том, что выполнение JavaScript выше пытается «выгрузить» текущее окно/форму, которая не будет работать для меня в этой ситуации.
Есть ли решение для этого, используя только PHP для «принудительного» файла (в данном случае «file.zip») для загрузки?
'Content-Transfer-Encoding' не является HTTP-заголовком. Просто говорю. – DaSourcerer