每一年都奔走在自己热爱里

没有人是一座孤岛,总有谁爱着你

SpringBoot使用ServletFileUpload上传文件时servletFileUpload.parseRequest(request)为空

1. 问题描述

1.1 SpringBoot使用ServletFileUpload上传文件时 List<FileItem> items = servletFileUpload.parseRequest(request)为空

 // 获取ServletFileUpload
ServletFileUpload servletFileUpload = getServletFileUpload();
List<FileItem> items = servletFileUpload.parseRequest(request);
/**
     * 获取ServletFileUpload
     */
    private ServletFileUpload getServletFileUpload() {
        // 设置缓冲区大小,先读到内存里在从内存写
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(1024);
        File file = new File(uploadPath);
        // 如果文件夹不存在则创建
        if (!file.exists() && !file.isDirectory()) {
            file.mkdirs();
        }
        factory.setRepository(file);
        // 解析
        ServletFileUpload upload = new ServletFileUpload(factory);
        // 设置单个大小与最大大小
        upload.setFileSizeMax(1 * 1024 * 1024 * 1024L);
        upload.setSizeMax(10 * 1024 * 1024 * 1024L);
        return upload;
}

2. 问题原因

Spring Boot中有默认的文件上传组件,在使用ServletFileUpload时需要关闭Spring Boot的默认配置

3. 解决方法

修改 application.yml 文件

spring:
  servlet:
    multipart:
      # Spring Boot中有默认的文件上传组件,在使用ServletFileUpload时需要关闭Spring Boot的默认配置
      enabled: false

 

posted @ 2022-11-18 14:18  helloliyh  阅读(604)  评论(0编辑  收藏  举报