2012-02-21 50 views
1

是否有像这样的场景的一些开源文件上传(应用)解决方案?我们有用户可能想要上传真正的巨型文件,实际上可能是几GB的文件大小,而且由于超时等原因,这里看起来像一个普通的文件上传文本框不会是一个不错的选择......asp.net通过文件大小在Gig上传文件?

感谢您的任何意见...

回答

3

乔恩·加洛韦在这里有一个很好的文章:Large file uploads in ASP.NET

他提到NeatUpload(这是免费的,LGPL,商业友好的开源许可证下发布)以及链接到codeplex页面的链接:http://neatupload.codeplex.com/

项目描述

的NeatUpload™ASP.NET组件允许开发者流 上传的文件存储(文件系统或数据库),并允许用户 监控上传进度。它是开源的,可以在Mono的 XSP/mod_mono以及Microsoft的ASP.NET实现下工作。

设有几个自定义控件,包括:

  • 多文件允许所有用户选择多个文件进行上传和 允许Flash 8+用户从一个单一的文件 选择对话框中选择多个文件。
  • ProgressBar以内联或弹出的方式显示上载进度。
  • UnloadConfirmer可防止用户通过离开页面意外中断上载。

特点

  • 作品在网络的花园和网络农场。
  • 安装在GAC中时适用于中等信任环境。
  • 适用于Mono的XSP/mod_mono和Microsoft的ASP.NET 1.1或更高版本。
  • 易于安装和使用。将UploadHttpModule添加到Web.config 的部分,然后使用Visual Studios Web Forms Designer拖放控件。
  • ProgressBar控件可以显示处理进度 除了上传进度。
  • ProgressBar控件在JavaScript可用时在现代浏览器上使用AJAX风格的 无刷更新, 也允许没有JavaScript的用户查看上载进度。
  • 允许通过样式,自定义进度显示页面, UploadStorageProviders和UploadStateStoreProviders进行自定义,并提供用于创建自己的文件上传和进度控件的 API。
  • 如果NeatUpload UploadHttpModule不存在,则回到使用ASP.NET的HttpPostedFile。如果由于某些原因导致问题,可以很容易地删除 HttpModule。
  • 流直接上传到存储。这节省了服务器内存,允许更大的上传量,并有助于防止拒绝服务攻击。
  • 发生错误时删除上传的文件。这有助于防止磁盘空间泄漏。
  • 根据宽松通用公共许可证(LGPL)获得许可,该许可证适用于商业用途的开源许可证。