对于这样的场景,是否有一些开源文件上传(应用程序)解决方案?我们有可能想要上传真正巨型文件的用户,实际上可能是几GB的文件大小,而且由于超时等原因,似乎常规文件上传文本框不会是一个不错的选择...... / p>
感谢您的任何建议......
答案 0 :(得分:3)
Jon Galloway在这里有一篇好文章:Large file uploads in ASP.NET
他在文章中提到 NeatUpload (这是免费的,并在LGPL下发布,这是一个商业友好的开源许可证),以及指向codeplex页面的链接:http://neatupload.codeplex.com/ < / p>
项目说明
NeatUpload™ASP.NET组件允许开发人员进行流式传输 上传文件到存储(文件系统或数据库)并允许用户 监控上传进度。它是开源的,可以在Mono下工作 XSP / mod_mono以及Microsoft的ASP.NET实现。
它具有多个自定义控件,包括:
- MultiFile允许所有用户选择要上传的多个文件 允许Flash 8+用户从单个文件中选择多个文件 选择对话框。
- ProgressBar以内联或弹出方式显示上传进度。
- UnloadConfirmer通过离开页面来防止用户意外中断上传。
功能强>
- 在网络花园和网络农场工作。
- 安装在GAC中时,在中等信任环境下工作。
- 在Mono的XSP / mod_mono和Microsoft的ASP.NET 1.1或更高版本下工作。
- 易于安装和使用。将UploadHttpModule添加到Web.config的部分 并使用Visual Studios Web窗体拖放控件 设计器。
- ProgressBar控件可以显示处理进度 除上传进度外。
- ProgressBar控件使用AJAX风格 当JavaScript可用时,现代浏览器上的无刷新更新, 但也允许没有JavaScript的用户查看上传进度。
- 允许通过样式,自定义进度显示页面进行自定义, UploadStorageProviders和UploadStateStoreProviders,并提供 用于创建自己的文件上载和进度控件的API。
- 如果NeatUpload UploadHttpModule不存在,则回退到使用ASP.NET的HttpPostedFile。这样可以轻松删除 HttpModule如果由于某种原因导致问题。
- Streams直接上传到存储。这节省了服务器内存,允许更大的上传,并有助于防止拒绝服务攻击。
- 发生错误时删除上传的文件。这有助于防止磁盘空间泄漏。
- 根据较小的通用公共许可证(LGPL)获得许可,这是一种商业友好的开源许可证。