【问题标题】:Handle MaxUploadSizeExceededException : Ajax File Uploading处理 MaxUploadSizeExceededException : Ajax 文件上传
【发布时间】:2015-03-17 12:11:09
【问题描述】:
如何在基于ajax 的文件上传操作中有效处理MaxUploadSizeExceededException。
我有一个基于 ajax 的文件上传功能。当用户上传大小超过允许的最大值的文件时,我需要处理MaxUploadSizeExceededException。我从here 获得了解决方案,当文件大小超过时,用户将被定向到错误页面。由于我使用 ajax 请求上传文件,我想在文件大小超过时在浏览器中显示javascript 警报,而不是重定向到某个错误页面。
我该怎么做?
【问题讨论】:
标签:
java
spring
spring-mvc
file-upload
【解决方案1】:
我不知道在 Ajax 中,因为您要求使用 javascript 显示,如果您使用的浏览器不支持 HTML 5,则可以使用 ActiveXObject。如果您使用的是现代浏览器,您可以使用如下所示的文件 API,
$('#fileId').bind('change', function() {
//The below code will get the size of the uploaded file.
alert(this.files[0].size);
});
你会得到文件大小以字节为单位,你可以将文件大小除以 1024 得到 kb。
【解决方案2】:
一个可能的解决方案是完全遵循linked answer 中的解决方案,在异常情况下,您将重定向到一个 error.jsp,它实际上会返回 JSON,如此简单
error.jsp
<%@ page contentType="application/json;charset=UTF-8" language="java" %>
{"errors":"${errors}"}
在这种情况下,您的 ajax 调用的 成功 部分将是
success : function(json) {
alert(json.errors);
}