You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot+JSP项目Summernote保存图片遇上传大小超限问题求助

解决Summernote上传图片触发SpringBoot文件大小超限问题

可能的原因及对应方案

1. 确认SpringBoot配置的正确性与生效范围

  • 确保配置项写在正确的配置文件中(如application.properties或application.yml),如果是多环境配置,要对应到当前激活的环境文件。
  • 检查配置格式:
    • Properties格式:
      spring.servlet.multipart.max-file-size=50MB
      spring.servlet.multipart.max-request-size=50MB
      server.tomcat.max-swallow-size=-1
      server.tomcat.max-form-content-size=50MB
      
    • YAML格式(注意冒号后需加空格):
      spring:
        servlet:
          multipart:
            max-file-size: 50MB
            max-request-size: 50MB
      server:
        tomcat:
          max-swallow-size: -1
          max-form-content-size: 50MB
      
  • 重启项目,确保配置生效。

2. 检查是否存在自定义MultipartResolver覆盖默认配置

如果项目中自定义了MultipartResolver Bean,SpringBoot的自动配置会失效,需手动设置文件大小参数:

@Bean
public CommonsMultipartResolver multipartResolver() {
    CommonsMultipartResolver resolver = new CommonsMultipartResolver();
    resolver.setMaxUploadSizePerFile(52428800); // 50MB,单位字节
    resolver.setMaxUploadSize(52428800);
    return resolver;
}

如果使用StandardServletMultipartResolver,需配合@MultipartConfig注解:

@SpringBootApplication
@MultipartConfig(maxFileSize = 52428800, maxRequestSize = 52428800)
public class YourBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourBootApplication.class, args);
    }
}

3. 强制Summernote使用表单上传而非Base64编码

Summernote默认可能将图片转为Base64编码后提交,Base64会使文件体积增加约30%,8MB图片转码后约10.4MB,可能触发隐性的请求大小限制。修改JS配置,强制用表单上传:

$('.summernote').summernote({
    height: 350,
    maximumImageFileSize: 52428800,
    callbacks: {
        onImageUpload: function(files) {
            const formData = new FormData();
            formData.append('file', files[0]);
            $.ajax({
                url: '/your-image-upload-api', // 替换为你的后端上传接口
                type: 'POST',
                data: formData,
                contentType: false,
                processData: false,
                success: function(res) {
                    // 上传成功后插入图片到编辑器
                    $(this).summernote('insertImage', res.imageUrl);
                }.bind(this)
            });
        }
    }
});

4. 排查其他过滤器或安全框架的限制

检查项目中是否存在Spring Security、Shiro或自定义过滤器,这些组件可能独立设置了请求大小限制,需对应调整其配置。

内容的提问来源于stack exchange,提问作者Anh Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:16:25