Definido condicionalmente Cabeçalho Content-Disposition

2

Eu tenho uma galeria de imagens em um servidor IIS7. Gostaria de ter um botão para forçar o download da imagem visível no momento.

Talvez seja algo como definir um parâmetro de URL: link

Detecte globalmente esse parâmetro e defina o cabeçalho Content-Disposition como anexo.

Minha pergunta é: como eu faria isso? Posso configurá-lo no arquivo web.config de alguma forma?

Eu sou mais um cara de frontend.

    
por Sindre Sorhus 11.10.2011 / 14:08

1 resposta

4

Sim, você pode, mas somente se o administrador do servidor permitir que você altere o cabeçalho Content-Disposition. Isso pode ser permitido no nível do servidor ou do site, mas deve ser permitido pelo Administrador, conforme configurado pelo arquivo applicationHost.confg.

Aqui está a regra de reescrita para o 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>
    
por 11.10.2011 / 23:32