Если я сделаю URL-адрес для zip-файла href
ссылки и щелкну ссылку, мой zip-файл будет загружен, и его открытие получит содержимое, как я ожидаю.
Вот этот HTML:
download zip
Проблема в том, что я хочу, чтобы ссылка указывала на мое приложение, чтобы я мог определить, авторизован ли пользователь для доступа к этому zip-файлу.
поэтому я бы хотел, чтобы мой HTML был таким:
download zip
и мой PHP для страницы /canDownload
:
//business logic to determine if user can download
if($yesCanDownload){
$archive='https://mysite.com/uploads/my-archive.zip';
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($archive));
header("Content-Length: ".filesize($archive));
ob_clean();
flush();
echo readfile("$archive");
}
Итак, я думаю, что проблема связана с кодом header()
, но я пробовал кучу вещей, связанных с этим, на основе различных предложений Google и других SO, и ничего не работает.
Если вы ответите на мой вопрос, то, вероятно, сможете ответить и на этот вопрос:Заархивированный файл с PHP приводит к файлу cpgz после извлечения