asp.net-mvc – 使用ASP.NET MVC 2上传文件的最佳方法是什么?
上传可变大小文件(非常大或非常小的ASP.NET MVC 2应用程序文件系统)的最佳方法是什么?
这是我到目前为止所理解的: 人们似乎有两种方式来处理这个问题. (我们假设文件可能非常大或非常小) (1)通过Request.Files或HttpPostedFileBase处理控制器动作中的上传,由于ASP.NET将文件加载到活动内存中,这似乎有很长一段时间的缺点. 要么 (2)使用HttpModule尽早拦截文件上传,HttpModule以某种方式规避了性能问题. (关于它是如何工作的,我有点多云,但我一直在使用这篇文章http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/作为参考).我模糊的部分是在什么时候ASP.NET将提交的文件加载到活动内存,以及如何在模块中拦截它实际上改变了这种行为. 由于第二个选项更快,它似乎是更好的选择.但似乎提交上传表单的应用程序可能会有一些与需要保存在数据库中的文件相关联的数据.我不想在我的HttpHandler或HttpModule中进行持久性调用,(因为那时我将在不同的地方发生两个非常相似的功能:控制器和http处理程序). 我想一个解决方法是将目标文件位置存储在HttpContext.Items中,但这是最好的方法吗? 关于这一点的最后一个问题是我想在文件上传完成之前呈现HttpResponse.因此,如果有一个大文件,我将向用户发送一个包含上传状态值的视图,并进行AJAX调用以保持状态更新.如何在保持上传过程的同时呈现结果?我需要制作AsyncHandler或AsyncController吗?我需要手动抓取另一个线程吗? 非常感谢你们.我知道这是很多问题,可能反映了对某些事情的普遍缺乏理解.普遍缺乏理解的有趣之处在于,拥有它们的人也往往缺乏对缺乏理解的理解……所以,如果有人能指出我在正确的方向上,我会很感激. 解决方法
如果我从ASP.NET 2.0中正确记得大文件被刷新到磁盘,那么即使使用HttpPostedFileBase也不应该有任何内存/性能问题.我不确定asynccontrollers是否是这里的解决方案,asynccontrollers用于长时间运行的服务器进程.有关AsyncControllers的示例,请参阅
http://www.aaronstannard.com/post/2011/01/06/asynchonrous-controllers-ASPNET-mvc.aspx
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何和在哪里调用Database.EnsureCreated和Data
- asp.net-web-api – 无法在Mono / xsp4中加载类型’System.
- 在asp.net mvc中添加JavaScript文件
- asp.net-mvc – 适用于典型n层架构的Web API在哪里?
- ASP.NET FormsAuthentication cookie值的内容是什么?
- .net – 具有实体框架的存储库模式
- asp.net-mvc – 如何在MVC2下以编程方式设置母版页
- asp.net web api定义案例一
- asp.net-web-api – 尝试从asp.net web api自主主机中获取用
- asp.net – 递归控制搜索与LINQ
- 连续部署到ASP.NET的ASP.NET核心应用程序
- asp.net – SmtpException:服务器不支持安全连接
- asp.net – DDR Treeview菜单显示选定的根及其子
- 为什么ASP.NET抛出这么多异常?
- asp.net – HTTP文件如何在IIS内部上传?
- asp.net-mvc – 错误System.Web.HttpCompileExce
- 在ASP.NET MVC 5中向Windows角色添加自定义角色
- ASP.NET MVC> ASP.NET WebForms,为什么?
- 让 .NET 轻松构建中间件模式代码
- asp.net-mvc – 使用Ninject时如何处理DBContext