![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
cakephpにて開発をしています。
CSV出力するためにダイアログを表示したいのですが
表示されず、画面にcsvのデータが表示されてしまいます。
$csv_file = sprintf($this->convert_sjis("テスト_%s.csv"), date("Ymd-hi")); // 適当にファイル名を指定
header ("Content-disposition: attachment; filename=" . $csv_file);
header ("Content-type: application/octet-stream; name=" . $csv_file);
print($buf); // 出力
readfile($outputFile);
phpのソースです。以前はこれでダイアログが表示されたのですが
ajaxで呼び出すように修正したあとから画面に出力されるようになってしまいました。なにかご存知でしたらご教示お願いします。
No.3ベストアンサー
- 回答日時:
気になるところはいろいろあるけれど、とりあえずなぜ『AJAX』で呼び出すように変更したかがわからない。
元々、リンクをクリックすると『ファイルを保存』ダイアログが出るように処理を入れているのでしょう。
『ファイルを保存』ダイアログが出るなら、元々画面遷移を伴わない。
という意味では、なぜ『AJAX』で呼び出す必要があるのか。
ちなみに、変更したというJavaScript側に問題がある可能性も大です。
この回答への補足
BellBell様
御回答ありがとうございます。
以前、http://oshiete1.goo.ne.jp/qa5792881.htmlの内容で
質問した際、ajaxを使用したらできるのではと回答をいただいたので
参考にさせていただきました。
No.2
- 回答日時:
>$outputFileはなにも指定していない状態でした;
>$outputFileにはなにをしていすればいいですか?
読み込むべきCSVファイルを指定するのではありませんか?
もし $outputFile が無いのなら、そのスクリプトはエラー終了してしまいます。
この回答への補足
i80286様
御回答ありがとうございます。
そうですか。とりあえずそのまま
書いていただけなのでnullがはいっていたと思います。
スクリプトエラーはでていません。
No.1
- 回答日時:
$bufや$outputFileの内容が分からないので確実なことは言えませんが、ブラウザを再起動してから、下記のスクリプトで試してみてください。
-------------------------------
$csv_file = sprintf($this->convert_sjis("テスト_%s.csv"), date("Ymd-hi")); // 適当にファイル名を指定
$file_length = filesize($outputFile) + strlen($buf);
header("Content-Disposition: attachment; filename={$csv_file}");
header("Content-Length:{$file_length}");
header("Content-Type: application/octet-stream");
print($buf);
readfile($outputFile);
この回答への補足
御回答ありがとうございます。
$bufにはカンマ区切りのデータが
入っています。"aaa,bbb,ccc\n,ddd,eee,fff"こんな感じです。
$outputFileはなにも指定していない状態でした;
$outputFileにはなにをしていすればいいですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
stat failed
-
stdinからの処理でメール情報を...
-
ファイル名は、数字の「0」(...
-
メソッドと配列の処理速度について
-
PHPでの別のサーバーのテキスト...
-
別のサーバにあるファイルの存...
-
二次元配列のソートのやり方が...
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
【file_exists】ファイルが存在...
-
バッチを用いたフォルダの自動移動
-
現在位置より2つ上のディレク...
-
$_SESSION 有効期限をブラウザ...
-
.phpと.incファイルの違いはな...
-
Switch文における、returnとbre...
-
FTPコマンドでディレクトリごと...
-
PHPにて外部サイト内容が取得不...
-
【PHP】画像が表示されず「×」...
-
ファイルアップロードの上限を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つの画像ファイルが異なるファ...
-
stat failed
-
PHPでFilename cannot be empty...
-
XMLのロードに失敗する
-
ファイルの行数取得
-
日本語が文字化けしないよう読...
-
ファイル名は、数字の「0」(...
-
PHPで特定の文字列のみ抽出し、...
-
php4、php5によるimplode()、fi...
-
テキストファイルの読み込みと...
-
CSV出力
-
二次元配列のソートのやり方が...
-
日本語のファイルが開けない
-
phpのftp_get()でエラーが出ます。
-
Smartyで吐き出されたhtmlソー...
-
PHPでの別のサーバーのテキスト...
-
ファイルの読み込み方法について
-
TSVファイルをCSV形式に変換したい
-
ファイルについて・・・。
-
PHPでテキストファイルかどうか...
おすすめ情報