リンクのzipファイルのURLを作成しhref
てリンクをクリックすると、zipファイルがダウンロードされ、開くと期待どおりのコンテンツが取得されます。
そのHTMLは次のとおりです。
<a href="http://mysite.com/uploads/my-archive.zip">download zip</a>
問題は、ユーザーがこのzipファイルへのアクセスを許可されているかどうかを判断できるように、アプリケーションを指すリンクが必要なことです。
だから私は私のHTMLをこれにしたいです:
<a href="/canDownload">download zip</a>
と/canDownload
ページの私のPHP:
//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()
が、私はさまざまなグーグルや他のSOの提案に基づいてそれに関連するたくさんのことを試しましたが、どれもうまくいきません。
私の質問に答えれば、この質問にも答えられる可能性があります。PHPを含むzipファイルは、抽出後にcpgzファイルになります。