が、私はバンレイバンの提言のいくつかの次なかったものです:-)ことを行うにはお気軽に:サーバB側では
を、私はmaennchen/ZipStream-PHPを使用しましたコンポーネントは、このような呼び出しを使用して、コードの異なる部分で:サーバB側の
$zipArchive = new ZipStream();
$zipArchive->addFile($file_name, $image->getImageBlob());
$zipArchive->addFile($this->getId().".svg", $svg);
$zipArchive->finish();
Iは、受信したファイルを処理するためZIPARCHIVE()クラスを使用します。
私は2つの異なるが接続されている理由のためのソリューションと完全に満足していない、と私は、コミュニティが私を改善に役立たせていただきますことを期待しています:
- ZipStreamコンポーネントは、出力バッファに直接 にコンテンツを送信すべてのaddFile呼び出しで、副作用として発生します。これは、オブジェクト指向の良い の練習に違反します。オブジェクトによって返される任意のストリームリソース を使用する方が良いでしょう。
- ZipArchiveは何らかの理由でファイルシステムからファイルをロードするだけです。私はzipデータをファイルに書き込んで、 のZipArchiveオブジェクトで開くことができなければなりませんでしたが、それは道徳的には が間違っていますか?
両方のライブラリは、PHPの優れたストリームを十分に活用していません。どのようにこれを行うにはどのような考え?
あなたの質問の現在の文言では、あなたは「他人をローカルで保存する」と言っているが、同時に「何かをディスクに保存したくない」と言っている。私はあなたが "ローカルに他の人を保存する"ことで、あなたが欲しい、または意味していることを理解していません。 –
コメントありがとうございます。私はその質問を明確にした。私は後ですべてのファイルをクライアントに送るというオプションを探るかもしれませんが、今のところこれは必ずしも必要ではありません。 – Vakarelov