2009-06-07 4 views
0

レポートのCSV書き出しを提供するWebサイトのテストで問題が発生しました。 CSVは画面に出力され、ファイルは作成されません。CSVをIE 6にダウンロードする際の問題

IIS7、Vista、IE7の設定で正常に動作します。私は現時点では詳細を知ることができませんが、少なくとも以下のように質問したいと思います:CSVをブラウザ/バージョンに依存しないように適切に送信するためのコードは以下の通りですか?

Response.Clear(); 
    Response.Buffer = true; 
    Response.ContentType = "text/csv"; 
    string fileName = GetExportFileName(); 
    Response.AddHeader("Content-Disposition", "filename=" + fileName); 
    dt.WriteCsv(Response.Output, false); 
    Response.End(); 

私が問題を引き起こしている可能性/セパレータ、と日付を含めるようにファイル名を構築するんだけど、それは私のマシンには影響しない、と/は自動的_に置き換えられます。

+0

あなたはいつ応答を書いていますか? – Perpetualcoder

答えて

1

私は、 "添付ファイル" テキストを追加します

Response.AddHeader("content-disposition", "attachment;filename=FileName.csv");

をも使用しています。あなたはそれがあなたの友人のために何かの違いがあるかどうかを確認しようとするかもしれません。

0

IEのダウンロードを促す唯一の方法は、CSVファイルを圧縮することです(つまり、file.csv.zipまたはfile.zip)。

なしHTTPヘッダーがダウンロードを提供するためにIE6を強制しません

参照してください。これは特にIEで '自動検出される'テキストコンテンツの場合に当てはまります。

あなたはContent-Disposition添付を試すことができます。 filename = file.csvしかし、私はそれがいつもうまくいくとは思っていません。もしそうなら、確認してください。

0

あなたはあなたの友人が使用しているブラウザは言及しませんでした。結局、それはバグか非標準的な振る舞いです。

次のテクニックは私にとってうまくいくようです:http://www.blackbeltcoder.com/Articles/asp/creating-downloadable-content-dynamically

+0

ありがとう@ジョナサン、すべての情報が役立ちますが、私はすでに受け入れられた答えに示されているように、コンテンツの配置ヘッダーを追加することでこれを解決しました。 – ProfK

1

非常に遅れているので、後でこの問題を遭遇した人にとってはより多くのことです。これは「HTTPヘッダーがないため、IE6にダウンロードを強制しません。

PHPでは、「保存」ボタンを表示するためにIEで次のヘッダーを設定しています。 file - ブラウザーウィンドウにファイルを表示する。

Response.AddHeader("X-Download-Options", "noopen"); 
Response.AddHeader("X-Content-Type-Options", "nosniff"); 

Xヘッダーは、非標準ヘッダータイプであることを示すために使用されます。 IE6で動作します。

関連する問題