为什么FireFox在下载文件时不包含.xml扩展名?

nic*_*ine 5 asp.net firefox cross-browser http-headers mime-types

好.我确定它确实下载了扩展名为.xml的XML文件,但是我想知道这里的代码中缺少什么导致下载文件中缺少.xml扩展名.

注意:这适用于IE 6+(没有尝试基于WebKit的浏览器或Opera)

    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();

    }
Run Code Online (Sandbox Code Playgroud)

想法有人吗?

小智 7

尝试改变:

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

至:

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

该代码适用于所有浏览器(包括我们大量使用的Firefox).


小智 6

解决了firefox空间问题.用引号括起你的文件名.

更改以下代码

response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Run Code Online (Sandbox Code Playgroud)

response.AddHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
Run Code Online (Sandbox Code Playgroud)