みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPで生成したファイルをダウンロード

PHPとSQLiteを利用した、簡単な家計簿を作成しています。勉強も兼ねて作成したもので、個人での使用を想定しています。複数の人が使用することは考えていません。

ブラウザからデータベースへの登録・読出を行います。(この部分は完成しています。)
せっかくなのでこの家計簿(給与明細と言った方が近いですが)をファイルの形でダウンロードさせたいと考えています。PHPExcelというライブラリが有名という事で、利用することにしています。
Excel形式での書出しは、たくさんのサンプルがWEB上にあるのでそれほど難しくなかったのですが、これではサーバ上にファイルが出来るだけです。

PHPExcelで生成されたファイルをダウンロードさせたいのですが、どのように処理させたら良いでしょうか?アドバイスお願いします。

投稿日時 - 2011-07-16 14:11:41

QNo.6879207

困ってます

質問者が選んだベストアンサー

3行書くだけです。
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=kakeibo.xls");
readfile("kakeibo.xls"); //ここは実際のファイルパスを書く

尚、2行目のfilenameはブラウザのポップアップに
表示される名前で、漢字名を使う時はエンコード
しないと字化けします。
もし、ダウンロードしたファイルが使えない場合は
ZIP圧縮してからダウンロードすれば大丈夫かと
思います。その場合のmimeタイプはzipです。
header("Content-Type: application/zip");

投稿日時 - 2011-07-16 15:17:01

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

書出しの前にheader関数でMIMEタイプを指定してみてください

header("Content-type: application/vnd.ms-excel"); // MIMEタイプ指定
header("Content-disposition: attachment;filename=example.xls"); // ファイル名指定



なお、ExcelのMIMEタイプは他にもいくつかあるようです
うまくいかなかったら他のものを試してみてください

application/excel
application/msexcel
application/x-excel
application/x-msexcel
application/vnd.ms-excel

投稿日時 - 2011-07-16 15:17:29

お礼

無事上手くいきました。ありがとうございます。

どちらの方にもベストアンサーを差し上げたいのですが、さすがにそれは出来ないので、先に回答を下さった方に差し上げることにしました。

本当にありがとうございました!

投稿日時 - 2011-07-18 00:56:13

あなたにオススメの質問