我有一个MVC 4控制器方法返回FileContentResult如下:
[OutputCache(CacheProfile = "ImageCache")]
public FileContentResult GetImage(string dl)
{
return File(photoSig.BinaryPhoto, "image/jpeg", "photo.jpg");
}
ImageCache定义如下:
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="ImageCache" duration="1" varyByParam="*" location="Server" enabled="true" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
除了在IE中,一切正常,当用户将图片保存为...时,它仅使他们可以选择保存为PNG或BMP。JPG为什么不这样做?Chrome和ff提供JPG选项。
另一个有趣的观点是,它在我的本地盒子上正常工作,但在部署时效果不佳……这使我认为这可能是一个配置问题。但是我不知道从哪里开始寻找。JPG的IIS MIME类型是在UI服务器上定义的。
我相信这个问题与无存储的缓存控制标头有关。有关更多信息,请参阅此链接:http://social.technet.microsoft.com/forums/windows/en-us/e1f5c13b-92f0-4aa7-4aa7-83b5-344edbe4093d/-pro-sp3?论坛= itproxpsp
我们最终添加了IIS重写规则来解决问题...因此,当它说没有存储JPG文件时,我们将其更改为公共或私人之类的东西。然后我可以保存为JPG。