【发布时间】:2014-12-11 17:34:24
【问题描述】:
我有一个由我的网站 (ASP.NET) 中的按钮启动的动态生成文件。
输出直接写在响应中,因为我无法在服务器中创建临时文件(此外,它们会发生冲突,因为所有请求的文件名都相同,但内容会根据服务器上的其他一些数据而有所不同页)。
在 IE 中一切正常。 在 Chrome 中,它没有。 Chrome 使用页面名称(假设为 Default.aspx)作为文件名,而不管 HTTP 标头中的内容。
HTTP 标头是:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/vnd.ms-excel
Expires: -1
Server: Microsoft-IIS/8.0
Content-Disposition: : attachment; filename=test.xls
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcSWdvci5SaWJlaXJvXERvY3VtZW50c1xURlNcRXN0aW1hdGVzIGFuZCBQcm9qZWN0aW9uc1xXZWJzaXRlXFBFUFdlYlNpdGVcRGF0YVF1ZXJ5XERlZmF1bHQuYXNweA==?=
X-Powered-By: ASP.NET
Date: Thu, 11 Dec 2014 17:05:19 GMT
关于如何强制 Chrome 使用指定的文件名而不是页面名称的任何解决方案?
如果唯一的选择是将用户重定向到带有文件名的 URL,鉴于每个人的文件名都相同,但每个人的内容应该是分开的(因为它们不同),你会如何建议解决方案请求?
谢谢。
【问题讨论】:
标签: asp.net google-chrome http-headers content-disposition