データベースにあるデータをカンマ区切りでCSVファイルとしてユーザーにダウンロードさせようとしています。
今のやりかたは、down.phpの中で一度temp.csvという名前のファイルを作って、header("Location:temp.csv");としています。
ダウンロードのダイアログボックスが表示されるのはいいんですが、ファイルを保存する場所を指定するとき、なぜかデフォルトのファイル名が「temp.xls」になってしまいます。
これをtemp.csvにする方法はないでしょうか。
っていうかなんで拡張子変わっちゃうんでしょうか。。。
それと、ダウンロードのさせかたですが、このような方法でいいのでしょうか。
一応、自分の思っている通りの動きはするので、いいのかなーとは思っていますが。。。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ダウンロードさせるファイルのデフォルトファイル名はContent-Dispositionヘッダで替えることが出来ます。



>それと、ダウンロードのさせかたですが、このような方法でいいのでしょうか。
この方法では問題があると思います。多数のリクエストを出した場合にtemp.csvの内容が正しくないこともあるからです。
一時ファイルを作るならば一時ファイルの名前は確実にかぶらないようにしなければなりません(たとえばリクエストを受け付けた時間などを利用する)。
また、CSVなどはシーケンシャルなファイル方式なので一時ファイルを作らずに直接レスポンスとしてはき出した方が効率がよいと思います。

参考URL:http://www.studyinghttp.net/header#Content-Dispo …
    • good
    • 0
この回答へのお礼

ありがとうございました。
スッキリしました。

お礼日時:2005/04/05 11:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング