当前位置: 首页 > 知识库问答 >
问题:

当文件上载大小限制超过获取MultipartException而不是MaxuploadsizeExcurededException时,SpringBoot

年高洁
2023-03-14

我有简单的SpringBoot应用程序文件上传功能,其中最大文件上传文件大小为2 MB。

我已经配置了multipart.max-file-size=2mb,它运行良好。但是当我试图上传大于2 MB大小的文件时,我希望处理该错误并显示错误消息。

public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception exception)
    {        
        Map<String, Object> model = new HashMap<String, Object>();
        if (exception instanceof MaxUploadSizeExceededException)
        {
            model.put("msg", exception.getMessage());
        } else
        {
            model.put("msg", "Unexpected error: " + exception.getMessage());
        }

        return new ModelAndView("homepage", model);
    }

在文件大小超过的情况下,为什么我不得到MaxuploadsizeExcrededException?我得到了它的父异常MultipartException,除了文件大小超出之外,还可能有许多其他原因。

对此有什么想法吗?

共有1个答案

萧浩漫
2023-03-14

我也遇到过同样的问题,看起来只有Commons文件上传实现的MultipartResolver抛出了MaxuploadsizeExprocededException,而不是MultipartResolver Servlet3.0实现。

以下是我到目前为止所做的。这里的关键是允许在控制器上检查文件,然后您可以验证大小并设置错误。

>

  • 在multipart:max-file-size:-1 max-request-size:-1下面设置multipart属性

    如果(fileattachment.getSize()>10485760){throw new MaxuploadsizeExprojedException(fileattachment.getSize());}

  •  类似资料:
    • 我知道这个错误应该通过配置文件来解决,这正是我所做的,但是这个错误仍然发生。 我已经将在设置为,但我仍然面临这个错误。有人知道为什么吗? 错误

    • 我在做什么,发生了什么? 我正在尝试上载grails中的文件,并将其删除。完成后,我仍然面临一个问题,即文件大小太大。例外情况如下: 我尝试和结果: 我发现这个问题之前问过,答案是放一些配置变量: 但仍然会出现同样的错误。我还尝试添加一些依赖项,如这里所述。或者关闭IDE并重建。什么都解决不了。 有人面对这个问题并能解决它吗?

    • 问题内容: 我目前正在实现使用jersey rest上传文件的功能。我想设置一个允许的最大文件大小,这对我来说似乎是很常见的要求。 我的第一种方法是使用Jerseys FormDataContentDisposition,它应该包含我可能需要的有关文件的所有信息。但是似乎缺少所有信息,除了文件名,包括文件大小。 这是我的休息方法: 由于返回的大小始终为“ -1”,因此不起作用! 我使用一个非常简单

    • 问题内容: 我正在用multer创建一个简单的文件上传系统: 一切正常,文件被上传。唯一不起作用的是最大大小的限制。我这样做是为了检查文件onfileupload start的大小,如果文件过大,它将返回false。但是文件仍然只是上传。 似乎根本没有做任何事情。我尝试了一些东西,但是什么也没有。 我究竟做错了什么?使用multer上载时如何限制文件大小? 问题答案: 新的API 没有。如果要限制

    • 问题内容: 我在Django应用中有一个表单,用户可以在其中上传文件。 如何设置上传文件大小的限制,以便如果用户上传的文件大于我的限制,则该表格将无效并且会引发错误? 问题答案: 此代码可能会帮助:

    • Spring启动应用程序。我有一个用于上传多部分文件的Restendpoint。 Spring boot版本为2.0.6。我尝试了以下方法。 1) spring:tomcat:最大http表单post大小:500MB最大swallow大小:500MB 2) spring:servlet:多部分:最大文件大小:500MB最大请求大小:500MB已启用:true 3) spring:servlet:多