[PHP-users 18634]CSVファイルをダイレクトに開くときの問合せ回数について

Ueshima ueshima @ jnovel.co.jp
2003年 10月 27日 (月) 14:14:51 JST


こんにちは Ueshimaといいます。

早速なのですが,以下の環境にて
  RedHat Linux 7.3
  PHP    4.3.3
  MySQL  4.0.14
  Apache 1.3.28

ブラウザ(IE6)から MySQLに問合せをし,結果をCSVで保存かエクセルで
ダイレクトに表示させたいと思っています。

ヘッダー関数を以下のようにして

	$fname="Ex20030901.csv";
	header("Content-Disposition: attachment; filename=$fname");
	header("Content-type: application/x-csv");

[Submit]をクリックすると
ファイルのダウンロードのダイアログが以下のように表示されます。
 +-------------------------------------------------+
 |  ファイル名      Ex20030901.csv                 |
 |  ファイルの種類  Microsoft Excel CSVファイル    |
 |  発信元          webserver                      |
 |                                                 |
 |    [ 開く ] [ 保存 ] [キャンセル] [詳細情報]    |
 +-------------------------------------------------+

ここで[ 開く] をクリックすると,なぜか全く同じダイヤログが再度表示
されてしまいます。そこで更に[ 開く ]を押すと,エクセルが起動しデー
タが表示されるのですが,なぜ 2回同じダイアログが表示されるのか 1回に
する方法はないのか知りたいのです。
このMLのログや Googleでも検索してみましたが該当する情報を見つけるこ
とができませんでした。

因みに最初の問合せの時に[ 開く ]ではなく[ 保存 ]をクリックすると
この問合せは1回だけです。


■これまで試したこと
出力をバッファに全部ためてから出力すればOKかなと思い あるサイトで
php.iniへの以下の設定方法を見つけて試してみましたが変化がありませ
んでした。

output_buffering = On

 # CSVのファイルサイズが大きい場合相応のメモリを消費する
 # ことに注意するようアドバイスが添えられていました。


ヘッダー関数をそれぞれ以下のようにしてもやはり変化はありませんで
した。
header("Content-Type: application/download") ;
header("Content-type: application/octet-stream");


原因や解決策をご存知の方がおられましたらヒントかこのあたりの理屈
を説明したサイトなどご教授ください。

よろしくお願いします。


PHP-users メーリングリストの案内