リンクがわかっている場合、ファイルがダウンロードされないように保護します。私は私のルートフォルダ内のファイルを持っているし、次のと.htaccessファイル作成:禁止ファイルへのPHPファイルアクセスを許可するには
<Files ~ "\.xlsx$">
Order allow,deny
Deny from all
</Files>
リンク(www.domain.com/excel.xlsx)がロードされると、ブラウザは403禁止エラーが発生します。これは正しいです。
<?php
echo '<a href="../Excel.xlsx" download>Click to download</a>';
?>
をしかし、私はダウンロードしてクリックしたときに、私は再び403エラーを与えています:
私は、ルート内のフォルダ内で、このPHPファイルを配置しています。
PHPがこのファイルにアクセスして、次のコードをダウンロードする方法を教えてください。ありがとうございました!
おそらく 'download.php?file = thefilename.xlsx'のようなダウンロードプロキシファイルを作成する必要があります。そのファイルでは、PHPでファイルの内容を読み込んでブラウザに返します。また、ユーザーがログインしているかどうかを確認したり、CSRFトークンをURLに追加して、リクエストがサイトから来たものであることを検証することもできます。 (単に "force download php"を検索すれば、多くの例が得られます)。 –
"ルーティングスクリプト"を使用します。 'router.php?file = Excel.xlsx'のようなリンクを作成すると、PHPのセッション情報を使ってファイルの内容を渡すかどうかを決めることができます。また、その場合は正しいヘッダーを送信する必要があります。 'route/Excel.xlsx'のような参照を作成し、httpサーバの内部書き換えを使用して、そのような着信要求を' route.php'ルーティングスクリプトに再ルーティングすることもできます。 – arkascha