C#中的2 GB文件上传

时间:2009-10-12 07:42:35

标签: file-upload c#-2.0 cross-browser

要求客户端需要通过浏览器上传非常大(<= 2GB)的文件的选项。

我发现浏览器只支持2GB文件上传。是这样吗?

如果是,那么至少1.9999GB有什么解决方案吗?

尝试使用maxRequestLength,executionTimeout等参数,但没有产生任何结果。

3 个答案:

答案 0 :(得分:5)

使用Flash或Silverlight使用客户端控件的替代方法是使用Darren Johnson's ASP.NET upload module。我建议你看看这个。

这是一个IIS HTTP模块,允许以小块上传文件,减少内存使用量。有一些客户端JavaScript会向用户显示上传进度。

我在MOSS 2007中成功使用它并使用高达2GB的文件对其进行了测试 - 效果很好!

答案 1 :(得分:2)

您必须在machine.config中进行设置 看到这个:http://support.microsoft.com/?scid=kb;en-us;295626&x=12&y=6

答案 2 :(得分:0)

如果要上传大文件,最好使用用Sliverlight或flash编写的客户端控件来上传文件。这样,控件可以将文件拆分为单独上传的较小的卡盘。

“正常”文件上传的问题在于它是一次性事件并且没有重试机制。此外,Web服务器和代理也未针对长请求进行优化。随着客户端越来越远离主机Web服务器,它往往会通过您无法控制的系统(代理等)进行路由。根据我的经验,这些对大文件造成了严重破坏。