問題の詳細は次のとおりです。
1)動的な(IPベースの)ダウンロードリンクを作成したい。そのため、ユーザーは同じダウンロードリンクで異なるIPのファイルをダウンロードすることはできません。
2)実際のダウンロードを開始する前に、phpを使用してこのダウンロード要求をログに記録し、ユーザーが実際のファイルをダウンロードできるようにいくつかのチェック(httpリファラーを確認)を実行したいと思います。
3)ダウンロードファイルを再開可能にし、ダウンロードマネージャーでダウンロードできるようにしたい(複数のダウンロードインスタンスを使用)。また、ダウンロードごとに許可されるインスタンスの最大数を制限する必要があります。
4)ファイルサイズは200MBを超える可能性があります。
だから、私が考えている解決策は、ユーザーのIPのmd5ハッシュを使用してダウンロードリンクを作成することです。例: http: //yourdomain.com/download.php?ip_hash = hash-of-the-ip&file = file-to-download
これは単なる例ですが、htaccessを使用してこれの素晴らしいリンクを作成することもできます。
次に何をすべきですか?使ってみました
header("Content-Type: $ctype");
header("Content-Length: " . filesize($file));
header("Content-Disposition: attachment; filename=\"$fileName\"");
readfile($file);
ただし、これを使用しても、エンドユーザーはダウンロードを再開できません。
この方法を使用して大きなファイルを送信するのは問題ありませんか?
調査を行った結果、この方法を使用すると、エンドユーザーの.exeファイルが破損することがわかりました。