您可以通过将特殊的 web.config 放入该目录来更改目录及其子目录的默认限制 (4mb)。这样您就不必让整个网站都允许大量上传(这样做会使您面临某些类型的攻击)。
这是一个来自生产应用的示例。这个设置为 200mb:
<?xml version="1.0"?>
<!-- Nested this web.config here to allow for huge uploads (up to 200mb) -->
<configuration>
<system.web>
<httpRuntime maxRequestLength="200000"/>
</system.web>
</configuration>
嵌套 web.configs 没有任何负面影响 - 您现有的 web.config 设置仍将在站点范围内工作,并且从此目录开始,这些 httpRuntime 设置将被继承。
在处理上传的页面上,确保您的 ScriptTimeout 高于正常值。这是以秒为单位的:
Server.ScriptTimeout = 1200;
我喜欢在页面而不是 web.config 上设置它,因为它将增加的超时隔离到仅这一页。
在 SQL 方面,varbinary 列最多可以有 2 个 gig,所以你可以去那里。
更新:我已经对 50+ meg 文件使用了这种方法,但是在 100 meg 点上,标准方法可能会失效。有很多第三方控件可以从那里接管,但我可能会仔细研究 Telerik 的 RadUpload,因为它们是一个高质量的名称,而且看起来非常精美:RadUpload
至于你关于分块读取文件的更新,如果你真的想自己写,Bobby D 指出这篇文章:Uploading Large Files Using an HttpModule