-2

製品ファイルの場所を隠そうとしているので、購入後にPHPヘッダーを使用してサーバー側でダウンロードを開始しています。ファイルの URL を発見できる可能性はありますか?

次のコードを使用して

if (file_exists($_SERVER['DOCUMENT_ROOT']."/files/$file")) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
4

4 に答える 4

1

ブラウザは、これに従うheader('Location: ');かどうかを選択できるので、そうです。

次のようなものを使用して、それらをユーザーにストリーミングすることをお勧めしますreadfile();

于 2013-05-26T19:44:45.090 に答える
0

これに対する答えは、ファイルにバインドされた一意のハッシュを生成し、それらをテーブルに格納することです。次に、そのハッシュを持つユーザーを のようなファイルにリダイレクトします/download/n43j234jb3434。このハッシュは 1 回限りの使用です。readfile()でファイルをダウンロードできます

于 2013-05-26T19:46:42.957 に答える
0

ロケーションヘッダーを使用すると、基本的にクライアントにファイルの場所を伝えます。代わりの別のオプションは、ファイルをリダイレクトするのではなく、php にクライアントにファイルをフィードさせることです。

于 2013-05-26T19:48:09.810 に答える