Asp classic IE中的下载问题
我用的是经典的asp和vb脚本。 下载excel文件的代码为:Asp classic IE中的下载问题,asp-classic,download,cross-browser,Asp Classic,Download,Cross Browser,我用的是经典的asp和vb脚本。 下载excel文件的代码为: Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls" Response.Write "<table><tr><td>1</td></tr></table>"
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls"
Response.Write "<table><tr><td>1</td></tr></table>"
Response.ContentType=“应用程序/vnd.ms excel”
Response.AddHeader“内容处置”、“附件;文件名=ExportedData.xls”
回答:写“1”
然后,它可以很好地与firefox或任何其他下载程序(如orbit down loader)配合使用。
但是我在IE 6.0/7.0/8.0中遇到了错误
信息是:
Internet Explorer无法下载
来自secure.siteurl.com的myasppage.asp
Internet Explorer无法打开
这个网站。请求的站点
不可用或无法访问
建立请稍后再试
那么问题是什么呢
供参考:
我将查询字符串参数ysnDownload=1传递给myasppage.asp页面。
&如果它被传递,然后只有它将具有ContentType作为应用程序,否则它将具有默认类型(text/html)。如果您使用SSL(secure.siteurl.com使用SSL,对吗?),则Internet Explorer对临时文件有点挑剔
在这种情况下,我通常发送的标题是:
Cache-Control: public, must-revalidate
Pragma: hack
我想线索可能在“secure.siteurl.com”中。我猜你是通过https发送的 在这种情况下,IE处理此类下载的方式可能会与“bug”相冲突。它将这些文档下载到缓存中,然后从那里传输或打开它们。但是,当内容通过https下载且未指定缓存或明确声明不应从缓存提供项目时,文档不会保存在缓存中。这可能会破坏下载保存或打开mechinism 尝试设置响应对象的Expires和CacheControl属性,以允许非常短的缓存窗口。例如:-
Response.Expires = 1
Response.CacheControl = "private; max-age=10"
您是否
clear
ing和end
ing
Response.Clear
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls"
Response.Write "<table><tr><td>1</td></tr></table>"
Response.End
Response.Clear
Response.ContentType=“应用程序/vnd.ms excel”
Response.AddHeader“内容处置”、“附件;文件名=ExportedData.xls”
回答:写“1”
答复.完
这行代码应该适合您,只需在导出文件之前清除标题即可。
response.ClearHeaders() 是的,我正在使用https协议。我试过了,但没有成功。我有大麻烦了!!若我使用http,那个么它可以工作,但若我使用https,那个么它就会产生问题,正如你们所说的那个样。但为什么呢?有没有解决问题的办法?正如我在答覆中所说;试试pragma:hackI也遇到了这个IE bug,结果只是通过http发送,因为我找不到解决方法(当然是在客户允许的情况下)@Vikas:我在回答中已经描述了为什么会出现这个问题,我还提供了一个解决方案。你确定这些额外的头会覆盖任何其他预设值吗?在我的例子中,我确保没有发送任何标题。按照与此相同的思路,我成功地完成了以下操作:Response.AddHeader“pragma”,“no store,no cache,must revalidate”尝试:Response.AddHeader“pragma”,“no store,no cache,must revalidate”,但不起作用