行。我确定它确实下载了扩展名为.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();
}
想点什么?
答案 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