- - PR -
xp+sp2上のWEBからのCSVダウンロードについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-16 15:01
いつもお世話になっております。
現在、以下の環境でASPのWebシステムを開発しております。 OS:WinXP+SP2 IIS:5.01 PGで作成したCSVファイルへのハイパーリンクを 画面に置いて、ユーザがリンクをクリックすると、 CSVファイルをダウンロードする、というありがちな 画面を作っています。 ハイパーリンクの内容は"http://xxxx/yyyy/zzz.csv" のようになっているのですが、 1.ダウンロード画面が表示。ここでファイル名が "zzz.xls"になっている。 2.”保存”をクリックし、”名前を付けて保存”画面 でも"zzz.xls"になっている。 3.そのまま保存すると"zzz.xls"として保存される。 という現象が出ています。 2.の画面で保存ファイル名に"zzz.csv"と指定すると、 csv形式で保存できるのですが、ダウンロード画面で 勝手にxls形式で保存しようとするのは何故か?と 悩んでおります。 ◆試してみた事 1.環境をNTServerに移して試してみました。 →csv形式で保存できました。どうやらXP+SP2環境で 起こる現象かもしれない、と思っています。 2.画面上にボタンを配置し、ボタンアクションで csvファイルへリダイレクトするようにしてみました。 →やはりxls形式で保存しようとしています。 3.クライアントPCのフォルダオプションで拡張子CSVと EXCELの関連づけを外してみた(NOTEPADに変更した)。 →やはり、同じくxls形式で保存しようとしています。 ◆調べた事 フォルダオプション内のCSV、XLSの”ファイルの種類”を 調べました。 CSV … 「ダウンロード後に開く確認をする」にチェック有 XLS … 「ダウンロード後に開く確認をする」にチェック有 どうすれば、csvファイルをそのままダウンロードできるの でしょうか?ご存じの方おられましたら、アドバイスよろしく お願いします。 #先日まで別の掲示板で聞いておりましたが、Resが付かなかった #ため、削除してここに掲載させて頂きました。 | ||||
|
投稿日時: 2005-06-16 17:55
カウンターです。
自分も下記の環境で開発してます。 OS:WinXP+SP2 IIS:5.01 特に問題なく、CSVを作成→DL出来ましたよ。 どのような方法で行っているのでしょうか? | ||||
|
投稿日時: 2005-06-16 18:02
お返事ありがとうございます。
DL出来てるんですか?それでは、XP+SP2の問題じゃないかも 知れないです(とりあえず2台試して2台ともで再現したのですが)。 #http://bbs.hotfix.jp/ShowPost.aspx?PostID=1830 #↑こんな記事もありましたので、XP+SP2ではダウンロードの挙動が #違うものだと、早合点しておりました。 やっている事は、csvファイルのリンクを貼っているだけ なんです。 それと、”ファイル名を指定して実行”から URL「http://xxxx/yyyy/zzz.csv」を直打ちしても ダウンロード画面では"zzz.xls"になってしまいます。 IISの設定でどこかあやしいところがあるのでしょうか・・・。 | ||||
|
投稿日時: 2005-06-17 09:28
おはようございます。
カウンターです。 ちなみに私は、CSV作成とDLを行うクラスを作成して、ボタンでダウンロードさせてます。
ってな、感じです。 [ メッセージ編集済み 編集者: カウンター 編集日時 2005-06-20 09:19 ] | ||||
|
投稿日時: 2005-06-18 16:08
返事遅くなりましてすみません。
教えて頂いた方法を参考にしてサンプルを作成したら csvをダウンロードできました。 ただ、これは、”csv作成”→”ダウンロード”と連続で 行うのですよね。私の場合、既に存在するCSVファイルに 対してのダウンロードがしたいのです。 これは仕様を変えて対応できる範囲なので、この方法も 有りかとは思いますが、どうしてcsvファイルへのリンクを クリックするとxls形式で保存できるのか?この疑問を 解決したい、という気持ちもあります。 以上、よろしくお願い致します。 | ||||
|
投稿日時: 2005-06-19 23:17
原因がクライアント側にあるのか、サーバ側にあるかの 切り分けを行うことが大事だと思います。 1. IE以外のブラウザからアクセスした際に、同様の現象が起こるか。 2. サーバをNT環境で動作させた際にXP+SP2のクライアント(IE)で アクセスした際に、同様の現象が起こるか。 #http://bbs.hotfix.jp/ShowPost.aspx?PostID=1830 このバグについては私もテストしてみましたが、ファイルの拡張子 まで変更してしまう程、悪質なものではないようです。 | ||||
|
投稿日時: 2005-06-20 01:08
こんばんは。
Windows系は専門ではないのですが、Webサーバに絡んだ話として… これは Content-Type ( MIME Type ) の問題ではないでしょうか? つまり、xls ファイルに対応した Content-Type でコンテンツが発信されるため、URL上の拡張子 csv が無視されて、xls という拡張子が付けられてしまうという…。 たとえば、カウンターさんの例のように、Content-Type として、application/octet-stream を割り当ててみるのは如何でしょうか? 以上、ご参考まで。 | ||||
|
投稿日時: 2005-06-20 10:24
masaさん、angelさんありがとうございます。
masaさんのおっしゃる通り、改めて切り分けをすべく 動作を試してみました。 ・クライアント A.WinXp+Sp2 IE6.0 B.WinXp+Sp2 Firefox C.WinMe IE6.0 ・Webサーバ (1)WinXp+Sp2 A.拡張子"xls"で保存 B.拡張子"csv"で保存 C.拡張子"xls"で保存 (2)Win2000Server A.拡張子"csv"で保存 B.拡張子"csv"で保存 C.拡張子"csv"で保存 (3)Win2003Server A.拡張子"csv"で保存 B.拡張子"csv"で保存 C.拡張子"csv"で保存 (1)のB.での結果が意外でしたが、少なくともWinXp+Sp2をWebサーバに しない場合はこの現象は見られません。 masaさんのアドバイスを参考にして、 IISのプロパティよりMIMEマップに以下の項目を登録しました。 拡張子・・・csv MIME・・・application/octet-stream これでダウンロードすると拡張子csvでダウンロードすることが できました。 これはXP+SP2ではcsvはMIME登録されていないから、勝手に xlsと解釈したって事なんでしょうか? http://support.microsoft.com/default.aspx?scid=kb;ja;246068 ここを参考にMIMEを一覧表示してみましたが、 WinXp+Sp2 … csvのMIME登録無し Win2000Server … csvのMIME登録無し Win2003Server … csvのMIME登録有り(application/octet-stream) となっていました。 WinXpとWin2000ServerではMIME登録が無くても動きが違うのは WinXPの性格(?)みたいなものなんでしょうか。 #個人的にはWin2003ServerにはデフォルトでcsvがMIME登録されて #いるところに興味を持ちましたが・・・。 一応今回の件、私の中では ”WinXp+Sp2をWebサーバとして使う場合、csvのダウンロードを行うには 明示的にMIMEの登録を行う必要がある”と結論付けようと思います。 皆様にはお世話になりました。 また、私の結論に対して何か補足や意見等ありましたら お願い致します。 以上 |