我正在下载带有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
这可能吗?
答案 0 :(得分:1)
浏览器最终会根据请求的网址(和其他标题)缓存结果,而不是文件属性" content-disposition"响应标题。
后者只有在他决定再次调用Web服务器并得到响应之后才知道浏览器:如果它已经决定使用缓存,它将不会向服务器发送任何新请求。