Content-Disposition标头中的查询字符串

时间:2015-11-05 15:19:28

标签: c# asp.net

我正在下载带有Response.WriteFile的文件并在文件名后附加时间戳,以防止IE缓存下载的文件。但浏览器正在将?更改为_

string filePath = Server.MapPath("~/test.docx");
string fileName = string.Concat("test.docx", "?t=", DateTime.Now.Ticks);
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(filePath);
...

预期结果:test.docx

实际结果:test.docx_t=635823369853307954

这可能吗?

1 个答案:

答案 0 :(得分:1)

浏览器最终会根据请求的网址(和其他标题)缓存结果,而不是文件属性" content-disposition"响应标题。

后者只有在他决定再次调用Web服务器并得到响应之后才知道浏览器:如果它已经决定使用缓存,它将不会向服务器发送任何新请求。