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

Если я сделаю URL для почтового файлаhref ссылки и нажмите на ссылку, мой zip-файл будет загружен, и при открытии он получит содержимое, как я ожидаю.

Вот этот HTML:

<a href="http://mysite.com/uploads/my-archive.zip">download zip</a>

Проблема в том, что я хотел бы, чтобы ссылка указывала на мое приложение, чтобы я мог определить, авторизован ли пользователь для доступа к этому zip-файлу.

поэтому мне бы хотелось, чтобы мой HTML был таким:

 <a href="/canDownload">download zip</a> 

и мой PHP для/canDownload&nbsp;страница:

//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()&nbsp;код, но я пробовал кучу вещей, связанных с этим, на основе различных предложений Google и других SO, и ни одна из них не работает.

Если вы ответите на мой вопрос, скорее всего, вы тоже сможете ответить на этот вопрос:Архивированный файл с PHP приводит к появлению файла cpgz после извлечения