首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为普通用户和管理员配置不同maxUploadSize的MultipartResolver?

为普通用户和管理员配置不同maxUploadSize的MultipartResolver,可以通过以下步骤实现:

  1. 在Spring Boot应用中,创建一个名为MultipartConfig.java的配置文件,并添加以下代码:
代码语言:java
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;

@Configuration
public class MultipartConfig {

    @Bean
    public CommonsMultipartResolver commonsMultipartResolver() {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        commonsMultipartResolver.setMaxUploadSize(1000000); // 设置普通用户上传文件的最大大小为1MB
        return commonsMultipartResolver;
    }

    @Bean
    public StandardServletMultipartResolver standardServletMultipartResolver() {
        StandardServletMultipartResolver standardServletMultipartResolver = new StandardServletMultipartResolver();
        standardServletMultipartResolver.setMaxUploadSize(10000000); // 设置管理员上传文件的最大大小为10MB
        return standardServletMultipartResolver;
    }
}
  1. 在Spring Boot应用中,创建一个名为WebMvcConfig.java的配置文件,并添加以下代码:
代码语言:java
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    private CommonsMultipartResolver commonsMultipartResolver;

    @Autowired
    private StandardServletMultipartResolver standardServletMultipartResolver;

    @Override
    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
        resolvers.add(new MultipartExceptionResolver());
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/uploads/**").addResourceLocations("file:./uploads/");
    }

    @Bean
    public CommonsMultipartResolver multipartResolver() {
        return commonsMultipartResolver;
    }

    @Bean
    public StandardServletMultipartResolver standardMultipartResolver() {
        return standardServletMultipartResolver;
    }
}
  1. 在Spring Boot应用中,创建一个名为MultipartExceptionResolver.java的异常处理类,并添加以下代码:
代码语言:java
复制
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;

public class MultipartExceptionResolver extends SimpleMappingExceptionResolver {

    @Override
    protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        if (ex instanceof MultipartException) {
            return new ModelAndView("error").addObject("message", "上传文件大小超出限制");
        }
        return super.doResolveException(request, response, handler, ex);
    }
}
  1. 在Spring Boot应用中,创建一个名为UserController.java的控制器类,并添加以下代码:
代码语言:java
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private CommonsMultipartResolver commonsMultipartResolver;

    @Autowired
    private StandardServletMultipartResolver standardServletMultipartResolver;

    @PostMapping("/upload")
    public String upload(MultipartFile file) {
        // 在这里处理普通用户上传的文件
        return "上传成功";
    }

    @PostMapping("/admin/upload")
    public String adminUpload(MultipartFile file) {
        // 在这里处理管理员上传的文件
        return "上传成功";
    }
}

通过以上代码,可以为普通用户和管理员配置不同的maxUploadSize的MultipartResolver。普通用户上传文件的最大大小为1MB,管理员上传文件的最大大小为10MB。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • SpringMVC文件上传: MultipartResolver接口

    SpringMVC 实现文件上传: 单文件上传: SpringMVC 为文件上传提供了直接的支持, 即 MultipartResolver接口 MultipartResolver接口 用于处理上传请求...组件 commons-io-2.4.jar commons-fileupload-1.2.2.jar 配置MultipartResolver ( 在SpringMVC的核心配置文件中; ) 使用...CommonsMultipartResolver配置一个MultipartResolver解析器 multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver...-- defaultEncoding : 请求的编码格式,默认为 ISO-8859-1; 一般设为UTF-8 (defaultEncoding必须和JSP的pageEncoding 设置一致,以便正确读取表单内容...) maxUploadSize : 设置文件上传的大小限制,单位为字节; --> 编写文件上传的表单页 (JSP HTML…) <%@ page language="java" import="java.util

    17110

    SpringMVC-文件上传

    概述Spring MVC 为文件上传提供了直接的支持,是通过即插即用的 MultipartResolver 实现的, MultipartResolver 是一个接口, Spring MVC 上下文中默认没有装配...MultipartResovler 如果想使用 Spring 的文件上传功能, 就必须得要自己下载相关 jar包 自己到配置文件当中装配到 Spring MVC 当中上传步骤首先导入相关 jar包,...如果是 maven 就导入对应依赖,如果是 gradle 和 maven 一样的导入对应的依赖,本文是导入jar包的方式来玩的图片添加到自己的工程当中图片然后在 SpringMVC 配置文件当中装配 MultipartResovler...--设置最大上传的容量大小,也就是文件的大小--> maxUploadSize" value="102400"/>然后在编写实现上传的代码即可/**...HTML5 为主,FLASH 为辅的现代文件上传组件我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

    20920

    捋一捋上传和下载

    JSON数据交互和RESTful开发 拦截器的骚操作 SpringBoot和SpringCloud可以看这里 初次见面,请多多指教。。...通过元素可以对文件解析器类CommonsMultipartResolver的如下属性进行配置: maxUploadSize:上传文件最大长度(以字节为单位); maxInMemorySize...注意:因为MultipartResolver接口的实现类CommonsMultipartResolver内部是引用multipartResolver字符串获取该实现类对象并完成文件解析的,所以在配置CommonsMultipartResolver...HttpHeaders对象和HttpStatus对象,通过对这两个对象的设置,即可完成下载文件时所需的配置信息。...当对中文名称的文件进行下载时,因为各个浏览器内部转码机制的不同,就会出现不同的乱码以及解析异常问题。 如何解决中文名文件下载乱码问题呢?

    43410

    SpringMVC之文件上传

    2、springmvc 传统方式的文件上传 2.1、说明 传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上。 并且上传完成之后,浏览器可能跳转。...-- 配置文件上传解析器 --> multipartResolver" 3、springmvc 跨服务器方式的文件上传 3.1、分服务器的目的 在实际开发中,我们会有很多处理不同功能的服务器。...例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 缓存和消息服务器:负责处理大并发访问的缓存和消息 文件服务器:负责存储用户上传文件的服务器。...-- 配置文件上传解析器 --> multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver

    39310

    快速学习-SpringMVC 实现文件上传

    2.2 springmvc 传统方式的文件上传 2.2.1 说明 传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上。并且上传完成之后,浏览器可能跳转。...-- 配置文件上传解析器 --> multipartResolver" <!...(不光是文件,其他字段也将无法绑定) 2.3 springmvc 跨服务器方式的文件上传 2.3.1 分服务器的目的 在实际开发中,我们会有很多处理不同功能的服务器。...例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 缓存和消息服务器:负责处理大并发访问的缓存和消息 文件服务器:负责存储用户上传文件的服务器。...-- 配置文件上传解析器 --> multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver

    53830

    maven 项目 springMVC实现文件图片的上传下载功能详解(源码已提供,小白必看)

    如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。...而Spring MVC则提供了更简单的封装。 Spring MVC为文件上传提供了直接的支持,这种支持是用即插即用的MultipartResolver实现的。...1、导入文件上传的jar包,commons-fileupload , Maven会自动帮我们导入他的依赖包 commons-io包; 2、配置bean:multipartResolver 【注意!!!...--文件上传配置--> multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver...-- 请求的编码格式,必须和jSP的pageEncoding属性一致,以便正确读取表单的内容,默认为ISO-8859-1 --> <property name="defaultEncoding

    2K10
    领券