我正在使用 .aspx 页面根据给定参数从文件系统提供图像文件。
Server.Transfer(imageFilePath);
当此代码运行时,将提供图像,但不会创建 Last-Modified HTTP header 。 与直接从同一服务器上的 URL 调用同一文件不同。
因此,浏览器不会发出 If-Modified-Since 并且不会缓存响应。
有没有办法让服务器像通常直接请求文件(在这种情况下是图像)一样创建 HTTP header ,还是我必须手动创建 header ?
最佳答案
当您传输文件时,服务器将返回与 .aspx
文件相同的 header ,因为它基本上是由 .NET 引擎执行的。
你基本上有两个选择:
改为重定向到该文件,以便浏览器发出对该文件的请求。
设置所需的 header ,然后使用
Request.BinaryWrite
(或 smiiliar)在响应中发送回文件数据。
关于asp.net - 为什么当我使用 Server.Transfer() 时没有创建 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069687/