为什么火狐不下载文件时包含.xml扩展?(Why Does FireFox Not Include

2019-09-18 13:36发布

好。 我敢肯定,这确实下载扩展名为.xml的XML文件,但我想知道什么是在代码所缺少这里引起.XML extenstion从下载的文件丢失。

注意:这适用于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();

    }

想法吗?

Answer 1:

尝试改变:

response.AddHeader( “内容处置”, “附件;文件名=” +文件名);

至:

response.AddHeader( “内容处置”, “附件;文件名=” + HttpUtility.UrlEncode(文件名));

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



Answer 2:

解决Firefox的空间问题。 用引号括您的文件名。

更改下面的代码

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

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


Answer 3:

请问您的文件名有它的空间? Firefox可能有问题,这一点。

看到这个博客帖子获取更多详情:

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



文章来源: Why Does FireFox Not Include the .xml Extension when Downloading a File?