【发布时间】:2010-10-16 12:23:17
【问题描述】:
我希望创建一个 ASP.NET Web 应用程序,该应用程序允许上传最大为 4GB 的文件。我怎样才能做到这一点?我更喜欢“下载”管理器之类的东西,我可以在其中恢复、暂停等...
这可能吗?如果是这样,我应该从哪里开始?我认为 asp.net 的上传限制为 4mb 之类的?我不太确定..
请指教。
干杯
【问题讨论】:
标签: asp.net web-applications file-upload
我希望创建一个 ASP.NET Web 应用程序,该应用程序允许上传最大为 4GB 的文件。我怎样才能做到这一点?我更喜欢“下载”管理器之类的东西,我可以在其中恢复、暂停等...
这可能吗?如果是这样,我应该从哪里开始?我认为 asp.net 的上传限制为 4mb 之类的?我不太确定..
请指教。
干杯
【问题讨论】:
标签: asp.net web-applications file-upload
文件上传限制通常由服务器配置文件控制。对不起,我是一个 PHP 人,所以我不确定在 asp.net 中,但对于我们的服务器,我们有一个 php.ini 文件,其中 upload_max_filesize 设置了允许的总大小。
对于上传管理器,您可能需要使用 java net beans 构建的东西,一个可以购买的基于 java 的插件或swfuploader。
我们已经在许多网站上成功使用了swfuploader。
【讨论】:
您始终可以自己实现文件上传,如果 .NET 实用程序中编码了一些限制(尽管它确实不应该),那真的不是那么困难。
就您可以恢复的某种“上传”管理器等而言,这根本不可能,因为它需要与客户端合作,而现代浏览器的上传功能根本不是那么“智能”。
您也许可以创建一个小型 Java Applet,您可以将其嵌入到您的页面中以处理会话的客户端,但您需要对 Applet 进行签名,并且您还需要自定义服务器逻辑来处理后端。
【讨论】:
除了服务器的限制之外,浏览器还限制可以在 POST 中发送的文件的大小(稍微过时:http://www.motobit.com/help/scptutl/pa98.htm)。这就是为什么许多实施基于 Flash 或 Java 的解决方案,可以使用直接管道到服务器执行“带外”上传。
【讨论】:
在 filemail.com,尽管该站点基于 asp.net,但他们使用了 Flex 客户端。所以总的来说,我认为“每个人”都使用 active-x 类型的客户端来完成这项任务。
【讨论】:
.NET 2.0 中的限制为 2 GB。
如果是 3.5,那么在你的 web.config 中考虑这个,如果你有的话。它设置最大文件大小和超时:
<httpRuntime maxRequestLength="4194304" executionTimeout="2400"/>
当然,如果您不认真,将文件上传到网站可能会很危险,因此与其他海报一样,考虑使用现有的经过测试的,至少要了解所有注意事项。祝你好运。
【讨论】:
您可以使用覆盖内置请求检查的第三方解决方案通过 ASP.NET 处理高达 4GB 的文件。这将适用于所有版本的 IIS,但 IIS 7 集成模式除外,后者有 2GB 的硬限制。
大多数上传者都没有暂停/恢复的能力,所以你可能不走运。谷歌看看你能找到什么。您可能必须使用 Java 或 ActiveX 才能获得此功能。
开始插件
我是SlickUpload 的作者,它是最早的 ASP.NET 上传者之一——它支持最大 4 GB 的上传。我们不支持 Flash、Silverlight 或 Java,但目前确实拥有最好的仅 AJAX 体验,并且丰富的小程序接口将在未来版本中推出。
【讨论】: