レポートを生成してアップロードしようとしています。問題は、ファイルを生成する関数がreadfile()で終わったときに、関数呼び出しの前にob_start()
を入れても、ファイルをダウンロードするだけです。だからなぜob_start
がそれを捕まえていないのか分かりません。Ob_startが出力ファイルをキャッチしない
問題はここに
私はその後、私は私が
$content = ob_get_contents();
を入れて、前の関数呼び出しの後、このheader('Content-Type: application/vnd.openxmlformats-officedocument.' . 'wordprocessingml.document'); header('Content-Disposition: attachment; filename="' . $fileNameDownload . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($fileName . '.' . $this->_extension)); readfile($fileName . '.' . $this->_extension);
のようなファイルを出力する関数を呼び出す
ob_start()
を呼ぶべきです
と4 ob_end_clen()
私はreadfile()
と機能は、バッファへの書き込みを開始しますが、代わりに、それは私はヘッダーが設定されているという事実を信じてダウンロード
私たちのコードを表示するそれ以外のすべて私はこのようなものの複製であることがわかりますhttp://stackoverflow.com/questions/10938822/how-do-i-assign-content-from-readfile-into-a-variable – Scuzzy
私はそれを少し編集しましたそうでなければ、hundreadsコード行はほとんどないからです。 – jemcaj
バッファの内容をエコーしないで、スクリプトの実行終了時に実際にダウンロードされた内容を確認しましたか?私の考えは、ヘッダーの競合が発生しているということです。 http://stackoverflow.com/questions/3111179/how-do-headers-work-with-output-buffering-in-php – Scuzzy