ダウンロードシステムの作成について質問があります。過去に作ったことがありますが、とても基本的なものでした。私がしたことは、ダウンロードのファイル名をデータベースに追加することでした。
id | title | filename
---|-----------|--------------
1 | Something | something.zip
次に、ユーザーがdownload.php?id = 1にアクセスすると、次のコマンドを使用して/path/to/downloads/something.zipにリダイレクトされます。
header('Location: /path/to/downloads/something.zip');
これにより、ブラウザは自動的にダウンロードを開始します。しかし、このようにしても大丈夫ですか?Codeigniterを使用してダウンロードシステムを構築していますが、ダウンロードヘルパーを利用できます。ダウンロードを提供するには、次のものが必要です。
$data = file_get_contents('/path/to/downloads/something.zip');
$name = 'Something';
force_download($name, $data);
file_get_contents()が原因で、単純なリダイレクトと比較して、この方法ではダウンロードが遅いことに気付きました。大きなダウンロードがいくつかあります(最大1 GBのサイズ)。何を指示してるんですか?Codeigniterダウンロードヘルパーを使用する必要がありますか、ファイルまたは他の何かに直接リダイレクトを使用する必要がありますか?