我的另一个问题。这不会是一个简单的!
我遇到处理简单上传的问题。 预测要求: - 没有闪电(劫持) - 基本上传字段使用+表单发布 - 最大文件大小为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的内置版),我怎么能显示一个整洁的错误信息?
答案 0 :(得分:0)
如果您不想先将整个文件发送到服务器,那么您唯一的选择就是javascript。 FileReader对象可以为您解决这个问题 https://developer.mozilla.org/en-US/docs/DOM/FileReader 问题是它不适用于旧浏览器。 现在,如果旧版浏览器对您来说不是问题,那么您应该找到大量教程向您展示如何使用FileReader对象。有了它,你可以进行异步上传,所以你甚至可以添加一个很好的进度条,考虑到相当大的文件。