2011-08-09 51 views
1

我写一个文件下载的方法来从服务器上下载文件到客户机C#asp.netHTTP响应文件下载Internet Explorer中,铬(C#,Asp.net)

我写了下面的代码不工作:

Response.ContentType = ReturnExtension(System.IO.Path.GetExtension(file.Name)); 

        Response.AppendHeader("Content-Disposition", "attachment; filename=" + file.Name); 

        Response.TransmitFile(strRequest); 

        Response.End(); 

这将在Firefox和Chrome中正常工作,但在IE中不起作用。

+1

当你说它不下载时,它会在浏览器窗口中打开吗?没做什么?你能确认你的ReturnExtension方法返回一个MIME类型吗?这个名字听起来不像,但我认为我应该检查...你的文件名还有空格吗?或者其他任何可能会混淆标题的内容? – Chris

+1

文件名中的空格不会产生问题,但必须具有适当的ContentType,而不是文件扩展名。 –

+0

我的ReturnExtension方法检查文件的扩展名并根据扩展名返回MIME类型,如果文件的扩展名是.bmp,它将返回字符串“image/bmp”。当我点击下载按钮没有保存或打开对话框出现,但在Firefox和铬一切工作正常,但在互联网资源管理器没有发生,我没有得到这个问题的原因,有人给我任何提示,谢谢。 –

回答

0

我面临着类似的问题,在IE浏览器的一些版本,不得不设置Cache-Control头,使下载正常工作:

response.Cache.SetCacheability(HttpCacheability.Private); 
0

尝试将Response.Clear()您的代码的顶部。

相关问题