• ベストアンサー

ファイルのダウンロードについて

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>

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

  • ベストアンサー
回答No.2

header("Content-type: application/x-csv"); header("Content-Disposition: inline; filename=test.csv"); この2行があるので、このスクリプトファイルの出力は全てcsvになります。1つのスクリプトに出力は1つですから、CSVをダウンロードさせつつHTMLをブラウザに表示、という事はPHPだけではできないです。

yukimizu
質問者

お礼

そういうことだったのですね。。 どうしてHTMLまで出力されるのか気がつかなかったです。 ありがとうございました。

その他の回答 (1)

回答No.1

余計なヘッダーが出力されているに一票 DBの処理をせずに、$fileに適当な文字列を入れて Content-typeをOctに変えてテストしてみれば