如何上传100MB文件?

jam*_*ams 4 c# sql-server asp.net file-upload

我正在ASP.NET中设计一个文件服务器应用程序.我必须上传一个大小为100MB的文件,然后将其保存到SQL Server 2008数据库中varbinary(max).必须在DB中保存文件.我正在使用FileUpload控制权.请建议我如何处理这么大的文件?
更新
任何代码示例都是很好的帮助,任何代码示例?
如何以块的形式读取文件?

Bri*_*Kay 9

您可以通过将特殊的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>
Run Code Online (Sandbox Code Playgroud)

嵌套web.configs没有任何负面的副作用 - 您现有的web.config设置仍将在站点范围内工作,并且从此目录开始,这些httpRuntime设置将被继承.

在处理上载的页面上,确保您具有高于正常的ScriptTimeout.这是以秒为单位测量的:

Server.ScriptTimeout = 1200;
Run Code Online (Sandbox Code Playgroud)

我喜欢在页面而不是web.config上设置它,因为它将增加的超时隔离到这一页.

在SQL方面,varbinary列可以达到2演出,所以你很高兴去那里.

更新:我已经将这种方法用于50+ meg文件,但有可能在100兆位时标准方法可能会崩溃.有许多第三方控件可以从那里接管,但我可能会很努力地看看Telerik的RadUpload,因为它们是一个高质量的名称,它看起来很精致:RadUpload

至于关于以块的形式读取文件的更新,如果你真的想自己编写,Bobby D指出了这篇文章:使用HttpModule上传大文件