Spring Boot 文件上传与下载

微笑向暖阳 2024-06-04 ⋅ 96 阅读

Spring Boot

引言

文件上传与下载是 Web 开发中常见的功能之一。在使用 Spring Boot 框架开发项目时,我们可以利用其提供的丰富功能和便捷的配置来实现文件上传和下载功能。

本文将介绍如何使用 Spring Boot 实现文件上传与下载功能,并提供一些实用的技巧和注意事项。

文件上传

在 Spring Boot 中配置文件上传

在 Spring Boot 中,我们可以使用 MultipartFile 类来处理文件上传。首先,我们需要在配置文件中指定文件上传的相关配置。

application.properties 文件中添加以下配置:

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

以上配置指定了文件的最大大小限制为 5MB,整个请求的最大大小限制为 10MB。

创建文件上传接口

在 Spring Boot 中创建文件上传接口非常简单。我们只需要在 Controller 类中添加一个处理文件上传请求的方法即可。

@RestController
public class FileUploadController {

    @PostMapping("/upload")
    public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
        // 处理文件上传
        return ResponseEntity.ok("File uploaded successfully");
    }
}

在上面的代码中,@PostMapping("/upload") 注解指定了该方法处理 POST 请求中的 /upload 路径。@RequestParam("file") 注解用于获取文件参数。

测试文件上传接口

使用 Postman 工具或其他类似工具发送 POST 请求到 /upload 接口,同时选择一个文件作为请求参数。根据接口返回的结果,可以判断文件是否上传成功。

文件下载

创建文件下载接口

在 Spring Boot 中创建文件下载接口同样非常简单。我们只需要在 Controller 类中添加一个处理文件下载请求的方法即可。

@RestController
public class FileDownloadController {

    @GetMapping("/download")
    public ResponseEntity<Resource> downloadFile() throws IOException {

        // 加载文件资源
        Resource resource = new UrlResource("file:/path/to/file");

        if (resource.exists()) {
            return ResponseEntity.ok()
                    .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + resource.getFilename())
                    .body(resource);
        } else {
            throw new FileNotFoundException("File not found");
        }
    }
}

在上面的代码中,new UrlResource("file:/path/to/file") 用于加载文件资源。可以根据实际需求更改为其他方式,比如从数据库中获取资源。

测试文件下载接口

在浏览器中输入 /download 接口地址,即可触发文件下载。根据浏览器的下载设置,文件会自动保存到指定的位置。

总结

本文介绍了如何在 Spring Boot 中实现文件上传与下载功能。通过简单的配置和少量的代码,我们可以轻松处理文件相关的请求。但请注意文件大小限制和上传路径的设置,以保证系统的正常运行和安全性。

希望本文能对你学习 Spring Boot 文件上传与下载功能有所帮助。如果有任何问题或建议,请随时留言。


全部评论: 0

    我有话说: