- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
MaxUploadSizeExceededException
当我上传的文件大小超过允许的最大值时出现异常。我想在出现此异常时显示错误消息(如验证错误消息)。在 Spring 3 中如何处理此异常以执行此类操作?
谢谢。
最佳答案
这是一个老问题,所以我将其添加给正在努力使用 Spring Boot 2 来解决这个问题的 future 人(包括 future 的我)。
首先你需要配置spring应用(在属性文件中):
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
如果您使用的是嵌入式 Tomcat(很可能是,因为它是标准配置),配置 Tomcat 以不取消大主体的请求也很重要
server.tomcat.max-swallow-size=-1
或至少将其设置为相对较大的尺寸
server.tomcat.max-swallow-size=100MB
如果您不为 Tomcat 设置 maxSwallowSize,您可能会浪费大量时间来调试为什么会处理错误但浏览器没有响应 - 这是因为如果没有此配置,Tomcat 将取消请求,即使您会在记录该应用程序正在处理错误,浏览器已经收到来自 Tomcat 的取消请求并且不再监听响应。
要处理 MaxUploadSizeExceededException,您可以添加 ControllerAdvice 和 ExceptionHandler。
这是 Kotlin 中的一个简单示例,它简单地设置一个带有错误的 flash 属性并重定向到某个页面:
@ControllerAdvice
class FileSizeExceptionAdvice {
@ExceptionHandler(MaxUploadSizeExceededException::class)
fun handleFileSizeException(
e: MaxUploadSizeExceededException,
redirectAttributes: RedirectAttributes
): String {
redirectAttributes.addFlashAttribute("error", "File is too big")
return "redirect:/"
}
}
注意:如果您想直接在 Controller 类中使用 ExceptionHandler 处理 MaxUploadSizeExceededException,您应该配置以下属性:
spring.servlet.multipart.resolve-lazily=true
否则会在请求映射到 Controller 之前触发异常。
关于java - 如何处理 MaxUploadSizeExceededException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689989/
我有一个简单的 spring 应用程序,带有一个需要多部分文件的 Controller 。出于测试目的,我设置了 MaxUploadSize大小仅为 50 字节。当我在 tomcat 中部署 war
MaxUploadSizeExceededException 当我上传的文件大小超过允许的最大值时出现异常。我想在出现此异常时显示错误消息(如验证错误消息)。在 Spring 3 中如何处理此异常以执
我正在开发图像上传系统。我使用 CommonsMultipartResolver 设置 maxUploadSize。当我尝试上传超过最大尺寸的图像文件时,会发生 MaxUploadSizeExcced
所以我使用 Spring Webflow 上传一个文件和带有最大文件大小参数的 CommonsMultipartResolver。 当最大文件大小超过 CommonsMultipartResolver
我想检查上传文件的大小并阻止文件完全加载到内存中。我正在使用 CommonsMultipartFile。上传的文件将被处理并保存在数据库中。 AbstractCoupleUploadControlle
我有一个包含三个文本字段和一个文件上传字段的表单。当我遇到 MaxUploadSizeExceededException 异常时,我可以使用实现 HandlerExceptionResolver 的类
我使用的是 Spring 3.2.0。根据this答案,我在带注释的 Controller 中有相同的方法,它实现了 HandlerExceptionResolver 接口(interface),例如
我正在尝试处理最大上传大小异常,但我发现的所有解决方案都失败了,我尝试实现 HandlerExceptionResolver、@ControllerAdvice 和由 @ExceptionHandle
我有简单的 SpringBoot 应用程序文件上传功能,其中最大文件上传文件大小为 2 MB。 我已经配置了 multipart.max-file-size=2MB 它工作正常。但是当我尝试上传大于
我发现 Apache Tomcat 允许以下配置,采用硬编码或注释方法。我不确定最大文件大小是在上传过程中还是在文件上传到临时位置之后计算的。该文档指示以下内容: The @MultipartConf
我正在使用 Spring Web 4.0.5、Spring Security 3.2.4、Commons FileUpload 1.3.1、Tomcat 7,我得到了一个丑陋的 MaxUploadSi
当超过文件大小时,如何通过文件上传拦截和发送自定义错误消息。我在 Controller 类中有一个带注释的异常处理程序,但请求没有到达 Controller 。我在这个链接上找到的答案 How to
我对此进行了一些研究,结果相互矛盾。要处理此错误,有人说我需要在我的一个 Controller 中实现 HandlerExceptionResolver。 这里有一些链接: How to handle
我有这段代码(就像在 Spring 的引用中): 当用户尝试上传超过 100 kB 的文件时,将显示 HTTP 状态为 500 的服务器错误页面和堆栈跟踪。如何
我无法捕捉和优雅地处理公共(public)文件上传的 FileUploadBase.SizeLimitExceededException或 Spring 的MaxUploadSizeExceededE
我是一名优秀的程序员,十分优秀!