7-Zip を使用してディレクトリを圧縮し、Web ブラウザにダウンロードしたいと考えています。
ただし、ファイルに圧縮する代わりに、PHP でそのファイルの内容をブラウザーにフィードします...理想的には、アーカイブが作成されているときに、7-Zip で新しいアーカイブの内容を標準出力に書き込みたいと思います。 .. 同時に PHP にバッファをフラッシュさせ、データをブラウザに送信します。
ほら、私が作成しているアーカイブはかなり大きいです。ユーザーの観点から見ると、通常の方法を使用すると、[ダウンロード] をクリックすると、最初にアーカイブが作成されてファイルに保存され (約 10 分かかる場合があります)、そのファイルが PHP によってダウンロードされます。 . 私がやろうとしているのは、アーカイブと出力の両方のステップを 1 つのプロセスに結合することです。
誰かがこれについて意見を持っていますか?
これは、同じことをしようとしている SourceForge の他の誰かです...
http://sourceforge.net/projects/p7zip/forums/forum/383043/topic/3828566
=======
助けてくれてありがとう。最近、このトピックに関する優れた議論が StackOverflow に既に存在することを発見したため、このスレッドを閉じます。見る:
LAMP: ディスク/CPU のスラッシングなしで、その場でユーザーのために大きなファイルの .Zip を作成する方法
=======
これが私が行った最終的な解決策であり、私にとってはうまく機能しています。ほとんどすべてのプラットフォームで使用できる「InfoZip」プログラムを使用していることに注意してください。
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename="file.zip"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
passthru("zip -8 -q -r - ./some_directory | cat");