5

私はすべてのブラウザで大きな問題を抱えています。

クライアントが必要な詳細を含むcsvファイルをダウンロードできるサイトがあります。

私が抱えている問題は、csvファイルが拡張子なしでダウンロードされるか、htmファイルとしてダウンロードされることです。

.csvでファイル名を指定しているコードでは、サーバー上のファイルも.csvです。

コードは次のとおりです

context.Response.Buffer = true;
context.Response.Clear();
context.Response.ClearHeaders();                    
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", @"attachment,     
     filename=" + ((string)Path.GetFileName(downloadFilePath)));
context.Response.WriteFile(downloadFilePath);
context.Response.Flush();
context.Response.Close();

私は試しcontext.Response.ContentType = "text/html";ましcontext.Response.ContentType = "application/octet-stream";た。

IIS6で実行されています。

誰かがこれを引き起こしている可能性があることを知っていますか?

4

2 に答える 2

2

逐語的な文字列リテラルがソースの1行にあると仮定して,Content-Dispositionヘッダーのを?に置き換えてみました;か?私が見つけた例では、常にセミコロンを使用しています。

また、特殊文字からヘッダーを保護するために、ファイル名を引用符で囲む方が安全な場合があります。

context.Response.AppendHeader(
    "Content-Disposition",
    string.Format(
        "attachment; filename=\"{0}\"",
        Path.GetFileName(downloadFilePath)));
于 2012-06-19T14:08:25.247 に答える
0

わかりました。ファイルがCSVとしてダウンロードされない理由を理解しました。

ファイル名にスペースが含まれているため、スペースで途切れないようにファイル名を囲む必要があります。

助けてくれてありがとう

于 2012-06-20T14:01:30.220 に答える