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

时间:2009-07-13 16:33:47

标签: 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();

    }

想点什么?

3 个答案:

答案 0 :(得分:7)

尝试更改:

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

要:

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

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

答案 1 :(得分:6)

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

更改以下代码

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

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

答案 2 :(得分:3)

你的文件名中是否有空格? Firefox可能有问题。

有关详细信息,请参阅此博客文章:

http://blog.mjjames.co.uk/2009/04/content-disposition-in-different.html