【问题标题】:web.config setting equivalent to htaccess Header set Content-dispositionweb.config 设置等效于 htaccess 标头设置内容处置
【发布时间】:2014-08-08 18:41:02
【问题描述】:

为了在不从服务器打开的情况下将 PDF 下载为文件,我使用了一个很好的脚本 download.js,它在 Chrome 中运行良好。但正如作者在 FF 中警告的那样,它会在单独的选项卡中打开下载的 PDF - 导致我的 SPA 出现导航问题。

他在 Apache 上说 htaccess 中的这段代码会修复它。我的应用程序在 IIS 8 上运行。如果可能,我更愿意在应用程序 web.config 中处理它。我可以在我的 Web.config 中放入 system.webServer 和/或在我的 IIS 中管理什么 - 允许共享主机提供程序。 (当然会在下面的代码中将 pdf 添加到 FilesMatch。)

//Easiest way to configure headers via Apache is to set Header set Content-Disposition "attachment" for files you want to be downloaded.
//So .htaccess can look like:

<FilesMatch "\.(zip|rar)$">
  Header set Content-Disposition attachment
</FilesMatch>

【问题讨论】:

    标签: javascript apache .htaccess iis web-config


    【解决方案1】:

    感谢在serverfaut 上找到的这个(之前不知道那个网站),我能够整理出一个出站规则,它相当于我上面问题中的 htaccess 语言。 (并在此过程中学到了一些很棒的东西)我现在得到了我正在寻找的 Firefox 下载行为,尽管我仍然需要找出处理资源未找到错误的最佳方法 - 欢迎提出建议。

    <system.webServer>
    <rewrite>
      <outboundRules>
        <rule name="Allow pdfs to be downloaded" preCondition="Only match pdfs">
          <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 pdfs">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^application/pdf" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多