spring boot项目报FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum

近期在处理spring boot项目上传文件时遇到文件大小超过限制的情况。异常信息为FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of ...今天把解决办法分享给大家

解决方案

解决这个问题,可以通过以下步骤进行操作:

1. 修改application.properties配置

打开application.properties文件,添加以下配置:

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

上述配置将允许上传的文件大小限制为10MB。你可以根据实际需求进行调整。

2. 添加文件上传控制器

@RestController
public class FileUploadController {

    private static final String UPLOAD_DIR = "uploads";

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
        if (file.isEmpty()) {
            return "Please select a file to upload.";
        }

        String fileName = StringUtils.cleanPath(file.getOriginalFilename());
        Path uploadPath = Paths.get(UPLOAD_DIR);

        if (!Files.exists(uploadPath)) {
            Files.createDirectories(uploadPath);
        }

        try (InputStream inputStream = file.getInputStream()) {
            Path filePath = uploadPath.resolve(fileName);
            Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException e) {
            return "Failed to upload file: " + fileName;
        }

        return "File uploaded successfully: " + fileName;
    }
}

在上述代码中,我们定义了一个FileUploadController类,其中的uploadFile方法用于处理文件上传请求。在此方法中,我们首先判断上传的文件是否为空,然后获取文件名并创建上传目录。最后,将文件保存到上传目录中。

3. 前端页面

在前端页面中,我们需要创建一个表单来上传文件。以下是一个简单的HTML代码示例:

<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
</form>

在上述代码中,我们创建了一个包含文件选择和提交按钮的表单,提交按钮的action属性指向文件上传的控制器路径。

总结

通过以上步骤,成功解决了Spring Boot项目中文件上传大小限制的问题。通过修改配置和编写相应的控制器,我们可以灵活地控制文件上传的大小限制,并提供友好的错误提示信息。希望我的分享对你有所帮助!

猜你喜欢

转载自blog.csdn.net/javamendou/article/details/131549171