为什么大文件上传只能在特定情况下进行?

问题描述 投票:0回答:3

我正在尝试将最大文件大小增加到 500 MB,以便在我的 ColdFusion 服务器上的应用程序上上传。我已对 ColdFusion 管理和 IIS 进行了更改,但是当我上传 437 MB .zip 文件并提交表单时,页面仅显示“该页面未显示,因为请求实体太大。”

这些是我所做的改变:

  • 在 ColdFusion 管理中,将“发布数据的最大大小”的值从 150 MB 增加到 500 MB
  • 在 ColdFusion 管理中,将“Request Throttle Memory”的值从 200 MB 增加到 550 MB
  • 在 IIS 中,将“默认网站”的“最大允许内容长度”值从 30000000 字节增加到 576716800 字节 (550 MB)
  • 在 IIS 中,将“myApplication”的“最大允许内容长度”值从 30000000 字节增加到 576716800 字节
  • 在 IIS 中,将“默认网站”的“uploadReadAheadSize”值从 49152 字节增加到 576716800 字节
  • 在 IIS 中,将“myApplication”的“uploadReadAheadSize”值从 49152 字节增加到 576716800 字节

上述更改并未解决问题。但是,如果满足以下所有条件,则可以上传大文件(例如 437 MB .zip 文件):

  1. 上传文件的表单位于应用程序的“index.cfm”文件中
  2. 表单提交到其所在的网页(通过使用
  3. URL 指向应用程序的根目录(例如 https://www.myserver.com/myApplication/,但如果我将 URL 从根目录更改为 https://www.myserver.com/ myApplication/index.cfm 并尝试上传,即使这两个 URL 功能相似(如果不相同),它也会失败)
html forms iis upload coldfusion
3个回答
0
投票

IIS 设置中的最大值为 104857600


0
投票

事实证明,这个问题的解决取决于Jakarta虚拟文件系统。我最近启用了详细的 IIS 日志记录,然后尝试上传大文件。上传失败,但随后出现的详细错误页面中包含一个名为“jakarta”的目录的 URL。在 IIS 的“连接”窗格中,“默认网站”下有一个名为“jakarta”的目录。对于这个“jakarta”目录,我决定将请求过滤下的“最大允许内容长度(字节)”增加到 550 MB,这解决了问题。

总而言之,这些是允许大文件上传工作所需的唯一更改,而无需遵守我在原始帖子中概述的特定条件(我之前提到的任何其他 IIS 值我都设置回默认值):

  • 在 IIS 中,将“myApplication”的“最大允许内容长度(字节)”值增加至 550 MB
  • 在 IIS 中,将“jakarta”的“最大允许内容长度(字节)”值增加至 550 MB
  • 在 ColdFusion 管理中,将“发布数据的最大大小”的值增加到 500 MB
  • 在 ColdFusion 管理中,将“Request Throttle Memory”的值增加到 550 MB

感谢所有回复的人!


-1
投票

您可以通过修改 web.config 文件中的 maxAllowedContentLength 设置来增加最大文件大小:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>
</system.webServer>

使用上述 maxAllowedContentLength,用户可以上传大小为 2 GB 的文件。此设置将立即生效,无需重新启动 IIS 服务。

© www.soinside.com 2019 - 2024. All rights reserved.