【问题标题】:How to allow any file download in IIS 7.5如何允许在 IIS 7.5 中下载任何文件
【发布时间】:2018-10-15 22:02:22
【问题描述】:

我正在开发一个通过 HTTP 下载任何类型文件的应用程序。我已经在本地系统中配置了 IIS 进行测试。我添加了一个用于文件共享的虚拟目录。早些时候,我在下载文件时收到 500 个内部服务器错误。

然后我添加了一种 MIMI 类型 .*。但它能够下载带有扩展名的文件。我有一些文件名后没有扩展名的文件,甚至没有一个点。对于这些文件,我收到 404.17 not found 错误。

此外,当我请求下载文件时,它会尝试打开而不是下载。示例包括网页(html、xml、aspx png 等)。对于这些文件类型,我发现在 http 请求(应用程序/八位字节流)中设置内容类型将使文件被下载。同样在 IIS 中,我必须将所有文件设置为正确的 MIMI 类型。

但为此我必须使用 POST 请求。但是如果我使用 POST,我会得到 405 method not allowed

我已经尝试了所有的解决方案,但都没有成功。

请帮助我哪里出错了。

另外,如果您有任何适当的 IIS 配置文件或任何链接,请告诉我。

【问题讨论】:

    标签: c# asp.net http iis


    【解决方案1】:

    可下载文件的标准由 MIME 类型 application/octet-stream 表示。
    因此,您只需将响应的 MIME 类型设置为以下内容:

    yourHttpResponse.ContentType = "application/octet-stream";
    

    当任何浏览器遇到这种 MIME 类型时,它会将文件作为字节流下载。

    【讨论】:

      【解决方案2】:

      无需注册 MIME 类型。
      您可以为文件下载创建一个代理 aspx 网页(Download.aspx),它将文件简单地发送到客户端。

      在该页面的加载事件中写入以下内容:

      Response.ClearContent();
      Response.ClearHeaders();
      Response.AddHeader("Content-disposition",
      "inline;filename=test.pdf");
      Response.WriteFile(file);
      Response.Flush();
      Response.End();
      

      http://www.dotnetperls.com/response-writefile

      【讨论】:

      • 谢谢@NitinSawant。问题是我会得到不允许的 405 方法。由于我不能使用 GET 请求来设置请求标头。如果我使用 POST,我会报 405 错误。
      • 它也能发送 ASPX 吗?
      • @Amit:是的,在我的服务器上,我可以下载任何文件。 @Kumar:你能把你所做的事贴出来吗?
      【解决方案3】:

      我认为您可以通过使用通配符 mime 类型映射来实现这一点。有关详细信息,请参阅以下链接;

      http://forums.iis.net/t/1158023.aspx?How+can+I+configure+an+IIS+site+to+allow+any+file+type+to+be+downloaded+

      MIME types missing in IIS 7 for ASP.NET - 404.17

      【讨论】:

        【解决方案4】:

        我认为您需要添加特定的 mime 类型来下载文件。在第一阶段,您需要从要下载文件的浏览器中点击 url。如果一切顺利,那么您应该检查您的代码问题是否存在。

        如果文件没有被下载。那么你需要在 IIS 中添加一个 mime 类型。为此,单击添加填充文件扩展名,例如“.db”,然后将 mime 类型填充为“文件/下载”,您将下载该文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-07
          • 1970-01-01
          • 2011-03-30
          • 1970-01-01
          • 1970-01-01
          • 2011-12-30
          • 1970-01-01
          相关资源
          最近更新 更多