我有一个ASP页面,它将从SQL查询创建一个记录集,并通过使用Response.ContentType =“application / vnd.ms-excel”属性来创建一个excel页面。
执行文件时,它会显示excel文件的保存对话框(我在Response.AddHeader中提到的任何文件名)为
Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
这在本地运行良好。但是当从服务器运行时(我只在IE中检查过),IT显示一个对话框“打开”“保存”ASP文件本身,如果我给出保存,它显示错误消息如“无法下载...”
知道如何解决这个问题吗?
答案 0 :(得分:2)
即使你说它在本地工作正常,代码(或数据)也一定有问题。
尝试删除标题并测试页面(在服务器中)
答案 1 :(得分:1)
由于它在您的本地测试机器上运行良好,因此您的代码可能没有任何问题。
第一步诊断是在您的客户端启动fiddler然后尝试下载。查看fiddler跟踪,看看服务器究竟发送了什么。
答案 2 :(得分:1)
确保在服务器上的IIS设置中将Active Server Pages Web服务扩展标记为“允许”。 (这些是来自Windows 2003的术语,在2008年,他们可能会将其称为其他内容......)
答案 3 :(得分:0)
尝试在IIS上为您的文件类型添加MIME类型
答案 4 :(得分:0)
这是一个长镜头,但......
如果您的服务器是通过SSL访问的,并且您使用的是IE6,问题可能是“Internet Explorer file downloads over SSL do not work with the cache control headers”
如果是这样,添加以下标题应该修复它:
Response.AddHeader "pragma", "no-store, no-cache, must-revalidate"