- ベストアンサー
ファイルのダウンロードについて
PHPでDBに接続してテーブルのバックアップを取るプログラム(ファイルのダウンロード)を作成していますが、 上手く動作しません。 bktbl.phpにアクセスすると、HTML部分まで「test.csv」として保存されてしまいます。 何故なのでしょうか。。 どなたか教えて下さい。よろしくお願いします。 (プログラム内で間違ってる部分もあれば・・教えて頂きたく) 逆に、バックアップしたファイルをインポートする場合は、pg_copy_fromでいけますよね? bktbl.php <?php //DB接続処理 ・・・・ ・・・・ $rows = pg_copy_to($connection,"テーブル名");; //DB切断処理 ・・・・ ・・・・ $file = implode("\r\n", $rows); $file_size = strlen($file); header("Content-type: application/x-csv"); header("Content-Disposition: inline; filename=test.csv"); header("Content-Length: $file_size"); print $file; ?> <HTML> HTML記述部分 </HTML>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
header("Content-type: application/x-csv"); header("Content-Disposition: inline; filename=test.csv"); この2行があるので、このスクリプトファイルの出力は全てcsvになります。1つのスクリプトに出力は1つですから、CSVをダウンロードさせつつHTMLをブラウザに表示、という事はPHPだけではできないです。
その他の回答 (1)
- ketaimania
- ベストアンサー率39% (9/23)
余計なヘッダーが出力されているに一票 DBの処理をせずに、$fileに適当な文字列を入れて Content-typeをOctに変えてテストしてみれば
お礼
そういうことだったのですね。。 どうしてHTMLまで出力されるのか気がつかなかったです。 ありがとうございました。