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

ひさびさに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
Info: CakePHP修行! |
固定リンク |
コメント (0) |
トラックバック (0) |
↑


