CakePHPでCSVファイルをダウンロードさせたいときの作法
January 11, 2008 8:39 PM written by Gen Taguchi

cake_top.gif

ひさびさにCakePHPの開発メモ。エンジニアじゃない人はスルーの方向で・・・。

さてアプリをつくっていてCSVファイルをダウンロードさせたい、みたいなときがありますが、その際にCakePHPではこうするといいよ、というお話。なお、このコードに関しては主に青い人に聞きまくりました(笑)。

では早速。

■ やりたいこと

/user/download のURLにてユーザー全部の情報をCSVでダウンロードさせたい。

■ users_controller.php

コントローラーのdownload()を以下のように記述。

function download($id) {
  $this->autoRender = false; // Viewを使わないように
  Configure::write('debug', 0); // debugコードを出さないように
  $csv_file = sprintf("users_%s.csv", date("Ymd-hi")); // 適当にファイル名を指定
  header ("Content-disposition: attachment; filename=" . $csv_file);
  header ("Content-type: application/octet-stream; name=" . $csv_file);
  $buf = "";
  // ごにょごにょして$bufにUserの内容を追加
  // 注意点は二つ。
  // 1. 一つにまとめたい文字列は""で囲む。
  // 2. 文字列内に"がある場合は""としてエスケープ
  print($buf); // 出力
  return;
}

これで/users/download/にアクセスすればCSVファイルが出力されるはずです。よろしければどうぞ。

その他のCakePHP関連情報は以下からどうぞ。

» CakePHP修行! アーカイブ | IDEA*IDEA

この記事のトラックバックURL (トラックバックは承認後に公開されます)

コメント一覧

コメント投稿 (コメントは承認後に公開されます)

名前
メールアドレス (表示されませんのでご安心を)
URL
情報保存?
コメント
あわせて読みたい

クリエイティブ・コモンズ・ライセンス

ユーザビリティ向上支援ビービット
Usability tested by BeBit

タブブラウザ Sleipnir 公式ページ(上級者向け)

Powered by
MovableType 3.34

人気ブログランキング - idea*idea
ワード
www.flickr.com
This is a Flickr badge showing photos in a set called 自炊生活. Make your own badge here.
Firefox meter