![有条件地设置 Content-Disposition 标头](https://linux22.com/image/564147/%E6%9C%89%E6%9D%A1%E4%BB%B6%E5%9C%B0%E8%AE%BE%E7%BD%AE%20Content-Disposition%20%E6%A0%87%E5%A4%B4.png)
我在 IIS7 服务器上有一个图库。我想有一个按钮来强制下载当前可见的图像。
也许像设置 url 参数那样: http://website.com/images/img.jpg?download
全局检测此参数,然后将 Content-Disposition 标头设置为附件。
我的问题是,我该怎么做?我可以以某种方式在 web.config 文件中设置它吗?
我更像是一个前端人员。
答案1
是的,您可以,但前提是您的服务器管理员允许您更改 Content-Disposition 标头。这可以在服务器或网站级别允许,但必须由管理员允许,因为它是通过 applicationHost.confg 文件配置的。
这是 web.config 的重写规则:
<outboundRules>
<rule name="Allow images to be downloaded" preCondition="Only match images">
<match serverVariable="RESPONSE_Content_Disposition" pattern="(.*)" negate="false" />
<action type="Rewrite" value="attachment" replace="true" />
<conditions>
<add input="{QUERY_STRING}" pattern="^download" />
</conditions>
</rule>
<preConditions>
<preCondition name="Only match images">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^image/" />
</preCondition>
</preConditions>
</outboundRules>