0

このコードの実行に CakePHP を使用しています。

ファイルを閲覧する

<?php
   if (isset($csv_filename)) {
      header("Content-Disposition: attachment; filename=$csv_filename");
   }
?>
<?=$csv?>

このページを実行してファイルをダウンロード (Open With) すると、Google Chrome や Firefox などの Web ブラウザーで開きます。このファイルを使用して開く必要がありました ここに画像の説明を入力

私の予想される出力は次のようになります。

ここに画像の説明を入力

実際、CakePHP 2.2.2 に移行して以来、すべてが正常に機能していました。

これに関するご意見、ご協力をお願いいたします。ありがとう :)

4

2 に答える 2

2

次のように、これがどの mimetype であるかをブラウザーに伝えるヘッダーを追加します。

header('Content-Type: application/vnd.ms-excel; charset=utf-8')
于 2013-03-20T06:49:06.157 に答える
1

ファイルを CSV としてダウンロードするには、CSV を検出するようにルーティングを設定します。routes.php ファイルで、CSV のパース拡張子を設定したことを確認してください:-

Router::parseExtensions('csv');

次に、コントローラーで CSV のファイル名を設定し、マークアップを出力しないレイアウトを使用していることを確認します (例: デフォルトの ajax.ctp):-

$this->response->download("$csv_filename.csv");
$this->layout = 'ajax';

またRequestHandler、コントローラーのコンポーネントリストにあることを確認してください:-

public $components = array('RequestHandler');

アクション テンプレートをコントローラーのビューの csv ディレクトリに配置するだけです。

それでも機能しない場合は、削除が必要なマークアップが出力されている可能性があります。Cake のエラーはこれを行うことができます。

于 2013-03-20T10:43:25.923 に答える