优雅的maxrequest处理程序

时间:2012-09-26 13:51:34

标签: c# asp.net-mvc upload maxrequestlength

我的另一个问题。这不会是一个简单的!

我遇到处理简单上传的问题。 预测要求: - 没有闪电(劫持) - 基本上传字段使用+表单发布 - 最大文件大小为20MB(web.config maxrequestlength) - 我正在使用visual studio中的IIS开发工具运行该网站(我认为) - 我正在使用MVC网络项目

问题:当文件大于20MB时,是否可以向用户显示一条漂亮的错误消息? (不首先将整个文件发送到服务器)

这些链接对我帮助最大:

http://www.telerik.com/community/forums/aspnet/upload/maximum-request-length-exceeded.aspx

ASP.NET MVC: Handling upload exceeding maxRequestLength

http://forums.whirlpool.net.au/archive/809909

http://forums.asp.net/t/1106579.aspx/1

Catching "Maximum request length exceeded"

但我仍然无法解决问题。 Atm我使用了最后一个链接(Catching "Maximum request length exceeded")的接受答案的代码,但是当我运行下面的代码行时,我的代码崩溃了:

this.Server.Transfer("~/error/UploadTooLarge.aspx");

错误消息:执行〜/ error / UploadTooLarge.aspx的子请求时出错。

我想我收到此消息是因为我在网络服务器中使用VS.NET的内置版本(请参阅:http://forums.asp.net/t/1106579.aspx/1该页面的最后一篇文章)。

我很害怕我让整个问题有点难以阅读。简而言之: 当我上传文件太大时(如果在网络服务器中使用S.NET的内置版),我怎么能显示一个整洁的错误信息?

1 个答案:

答案 0 :(得分:0)

如果您不想先将整个文件发送到服务器,那么您唯一的选择就是javascript。 FileReader对象可以为您解决这个问题 https://developer.mozilla.org/en-US/docs/DOM/FileReader 问题是它不适用于旧浏览器。 现在,如果旧版浏览器对您来说不是问题,那么您应该找到大量教程向您展示如何使用FileReader对象。有了它,你可以进行异步上传,所以你甚至可以添加一个很好的进度条,考虑到相当大的文件。