データベーステーブルを.csvとしてブラウザからダウンロードしようとしています。私のコードは、ベースのZendのフレームワークであると私は、次のアクションではほとんど存在してる:zendフレームワークでcsvをエクスポートする
public function exportTableAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$fileName = $this->_getParam('fileName');
$tableName = $this->_getParam('tableName');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
echo $this->getCsv($tableName, $fileName);
}
私は、有効なデータを含む私の.csvファイルをダウンロードすることができます。しかし、レイアウトとレンダラーを無効にしても、私の.csvファイルの最後に、私のページのヘッダー、サイドバー、およびフッターの出力が得られます。 exportTableActionで生成されたもの以外のhtml出力を無効にする方法はありますか?あるいは、ヘッダ情報とcsv文字列を別の方法でブラウザに送ることはできますか?
ところで:私は次のように私は、ヘッダーやサイドバーのレンダリングを支援するプラグインアクション・スタックを使用しています:
...
$actionStack = $front->getPlugin('Zend_Controller_Plugin_ActionStack');
$actionStack->pushStack($userlogAction);
$actionStack->pushStack($rightcolAction);
乾杯、エイドリアン
はあなたのヘッダー、サイドバー、フッターのためにActionStackプラグインを使用していますか? –
はい、確かに。 bootstrap.phpに次の行があります。 $ frontController-> registerPlugin(new Project_Controller_Plugin_ActionSetup()); exportTableActionでこれを無効にすることはできますか? – aimfeld
ちょっと - あなたのgetCsv($ tableName、$ fileName)の実装を投稿する可能性があります。方法? – emeraldjava