バックグラウンド
特定のアドレスに電子メールで送信される Excel シートを生成しています。ローカルホストで完全に動作します(完全に保存されますが、ローカルメールサーバーが実行されていないため、メーリングをテストできません)。私がそれをホストすると、いくつかの問題が発生します。
どんな問題
私はそれをこの行に絞り込みました:
$this->PhpExcel->saveToDisk($path);
$path
実行時に設定されるカスタム パスです。それを実行すると、ファイルがディスクに保存されますが、次のようになります。
これは、カスタム ヘルパー クラスの関数です。以下は、関数のコードです。
public function saveToDisk($path) {
// set layout
$this->_View->layout = '';
// headers
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
// writer
$objWriter = PHPExcel_IOFactory::createWriter($this->xls, 'Excel2007');
ob_end_clean();
$objWriter->save($path);
// clear memory
$this->xls->disconnectWorksheets();
}
しかし、ここに問題があります。ブラウザに出力すると、変更$objWriter->save($path);
する$objWriter->save('php://output');
とエラーが発生せず、ファイルが完全にエクスポートされます。
質問
エラーをグーグルで検索し、解決策を見つけるために最善を尽くしましたが、役に立ちませんでした。このエラーに関して入手できる情報の量は、驚くほど不足しているか、古くなっています。誰かが私が行方不明または間違っていることを教えてもらえますか?