2009-07-13 11 views
5

OK。私は拡張子が.xmlのXMLファイルをダウンロードすると確信していますが、ダウンロードしたファイルから.xml extenstionが見つからないようにするために、コードには何がないのでしょうか。ファイルをダウンロードするときにFireFoxが.xml拡張子を含まないのはなぜですか?

注:これは

private void GenerateXmlAttachment(string xmlInStringFormat, string fileName) 
    { 
    // Where fileName = "someFile.xml" 
     HttpResponse response = HttpContext.Current.Response; 
     response.Clear(); 
     response.Charset = string.Empty; 
     response.ContentEncoding = Encoding.Default; 

    response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 
     response.AddHeader("Content-Length", xmlInStringFormat.Length.ToString()); 
    response.ContentType = "text/xml";   

    response.Write(xmlInStringFormat); 
     response.Flush(); 
     response.End(); 

    } 

アイデア誰(のWebKitベースのブラウザやOperaをしようとしなかった)6+ IEで動作しますか?

+1

response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 

次のコードは、あなたが絶対ファイル名が最後に.xmlの持って保証することができますか? – cjk

+1

100%は絶対に保証されていません。 ) – nickytonline

+0

ライブHTTPヘッダーのレスポンスヘッダーは次のとおりです。 HTTP/1.x 200 OK サーバー:Microsoft-IIS/5.1 日付:2009年7月13日17:05 :14 GMT X-パワード・バイ:ASP.NET X-ASPNET-バージョン:2.0.50727 コンテンツディスポジション:添付ファイル;ファイル名=のtest.xml のContent-Length:2040 のCache-Control:プライベート のContentタイプ:テキスト/ xml – nickytonline

答えて

7

は変更してみてください:

response.AddHeader( "コンテンツ・処分"、 "添付ファイル;ファイル名=" + fileNameに)。

:を

response.AddHeader( "コンテンツの廃棄"、 "添付ファイル;ファイル名=" + HttpUtility.UrlEncode(filename)で)。

このコードは、すべてのブラウザ(私たちが頻繁に使用するFirefoxを含む)で動作します。

+0

@Jose。うん、それだよ。私はこの記事で約30分前にこの記事を見つけました。http://www.webmaster-talk.com/asp-forum/35962-content-disposition-does-nto-work-firefox.html投稿していただきありがとうございます。 – nickytonline

6

firefoxスペースの問題を解決しました。 ファイル名を引用符で囲みます。

変更

response.AddHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\""); 
関連する問題