我的另一个问题。这不是一个容易的问题!
我在处理简单的上传时遇到了问题。测试前要求:-无Flash(劫持)-基本上传字段用法+发布表单-最大文件大小为20MB(web.config最大请求长度)-我正在visual studio中使用内置IIS开发工具运行网站(我想)-我正在使用MVC web项目
问题:当文件大于20MB时,是否可以向用户显示一条漂亮的错误消息?(不需要先将整个文件发送到服务器)
这些链接对我帮助最大:
http://www.telerik.com/community/forums/aspnet/upload/maximum-request-length-exceeded.aspx
ASP.NET MVC:处理超过最大请求长度的上载
http://forums.whirlpool.net.au/archive/809909
http://forums.asp.net/t/1106579.aspx/1
捕获";超过最大请求长度";
但我还是没能解决这个问题。Atm我使用最后一个链接的已接受答案的代码(Catching"超过了最大请求长度"),但当我运行下面的代码行时,我的代码崩溃了:
this.Server.Transfer("~/error/UploadTooLarge.aspx");
错误消息:执行~/Error/UploadTooLarge.aspx的子请求时出错。
我想我收到这条消息是因为我正在使用VS.NET的内置web服务器(请参阅:http://forums.asp.net/t/1106579.aspx/1该页面的最后一篇文章)。
我很害怕我把整个问题弄得有点难以阅读。简而言之:当我上传的文件太大(使用.NET的内置web服务器)时,我如何显示整洁的错误消息?
如果您不想先将整个文件发送到服务器,那么您唯一的选择就是javascript。FileReader对象将为您解决此问题https://developer.mozilla.org/en-US/docs/DOM/FileReader问题是它在旧的浏览器上不起作用。现在,如果旧的浏览器对你来说不是问题,那么你应该找到很多教程来展示如何使用FileReader对象。有了它,你可以进行异步上传,所以你甚至可以添加一个不错的进度条,考虑到这是一个相当大的文件。