При открытии загруженного zip-файла создается файл cpgz?

Если я сделаю 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 после извлечения

9
задан Community 23 May 2017 в 12:02
поделиться