0

数時間検索しましたが、思い通りの結果が得られませんでした。CodeIgniterを使用してWebサイトを開発しています。CodeIgniterのデフォルトのZIPlibを使用してファイルを圧縮できますが、ダウンロード後に削除する方法がわかりません。

インターネットで検索したところ、得られる結果のほとんどは、リンク解除などの通常の削除機能に関連しています。しかし、ダウンロード後にそれを実行したいので、CodeIgniterに統合する必要があります。

この問題を解決するために私を案内してください。

ありがとうございます。

4

1 に答える 1

0

次のコードを使用してダウンロードを提供します。

header("Content-Type:$mimetype");
header("Content-Disposition: attachment; filename=$filename");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Content-Length:".filesize($temp_filename));
readfile_chunked($temp_filename);

(readfile_chunkedは http://nl2.php.net/manual/nl/function.readfile.phpから取得されます)

私の質問:ファイルがダウンロードされて保存されたかどうかを確認するにはどうすればよいですか?ダウンロード後の自動削除を可能にしたい。

ユーザーが[キャンセル]をクリックしてファイルをダウンロードしないと、関数が終了するように見えるため、以降のすべてのコマンドは実行されません。それは最高です。

ただし、ファイルがチャンクに収まるほど小さい場合はそうではありません。phpのreadfileは同じ振る舞いをしているようです。したがって、その場合、キャンセルがクリックされた場合でも、後続のすべてのコマンドが実行されます(そして、私のアプリケーションでは、ファイルが削除されますが、もちろん発生しないはずです)。

また、送信されたバイトをチェックしても役に立ちません。関数が存在する場合、キャンセルがクリックされた場合でも、単一のチャンクに収まる小さなファイルの完全なファイルサイズを常に返します。

それで、ダウンロードダイアログでクリックされるのをキャンセルする代わりに、ファイルがダウンロードされて開かれた/保存されたかどうかを判断するための実用的な方法はありますか?

于 2012-12-08T08:33:27.773 に答える