首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Spring Boot 简介
Spring Boot 的优点
Spring Boot 的开发环境搭建
Maven的安装和使用
Spring Boot 核心概念
Spring Boot 的自动配置
Spring Boot 的起步依赖
Spring Boot 的配置文件详解
Spring Boot 的注解详解
Spring Boot 的Web模块介绍
SpringBoot中Controller的使用
Spring Boot中的RESTful API的设计
Spring Boot中实现接收和发送JSON数据
Spring Boot实现文件上传和下载
Spring Boot与Thymeleaf模板引擎整合
Spring Boot与Vue.js整合
Spring Boot的JDBC模块详解
Spring Boot与MyBatis的整合
Spring Boot数据库事务的处理
Spring Boot数据库连接池的配置
Spring Boot的缓存模块
Spring Boot的日志管理
Spring Boot的打包和部署
当前位置:
首页>>
技术小册>>
SpringBoot零基础到实战
小册名称:SpringBoot零基础到实战
Spring Boot 是一个流行的 Java Web 开发框架,它提供了许多简化常见任务的功能和库。其中之一就是文件上传和下载,这对于许多 Web 应用程序来说是必不可少的。在本文中,我们将学习如何在 Spring Boot 中实现文件上传和下载,并提供一些示例代码。 **文件上传** Spring Boot 为文件上传提供了许多方便的功能和库。我们可以使用 Spring Boot 的 MultipartFile 类来处理上传的文件,并使用 @RequestParam 注解将文件数据绑定到 Java 对象中。以下是一个简单的文件上传示例: ```asp @RestController public class FileUploadController { private final static String UPLOAD_DIR = "uploads/"; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { // Get the filename and create a new file String filename = file.getOriginalFilename(); File targetFile = new File(UPLOAD_DIR + filename); targetFile.createNewFile(); // Save the file FileOutputStream fos = new FileOutputStream(targetFile); fos.write(file.getBytes()); fos.close(); // Return a success message return "File uploaded successfully!"; } } ``` 在上面的代码中,我们创建了一个名为 FileUploadController 的 REST 控制器,并在 uploadFile 方法中使用 @RequestParam 注解来将上传的文件绑定到 MultipartFile 对象中。然后,我们获取上传文件的原始文件名,并使用该文件名创建一个新文件。最后,我们使用 FileOutputStream 将上传文件的内容写入到新文件中。 要测试文件上传功能,请使用以下命令在命令行中发送 POST 请求: ```asp curl -X POST -F 'file=@/path/to/your/file' http://localhost:8080/upload ``` 在上面的命令中,我们使用 curl 工具发送一个 POST 请求,并在请求正文中指定要上传的文件。如果一切顺利,我们应该会在控制台中看到一个名为 uploads/your_file_name 的文件。 **文件下载** 文件下载也是 Web 应用程序的常见功能之一。在 Spring Boot 中,我们可以使用 ResponseEntity<InputStreamResource> 类型来实现文件下载。以下是一个简单的文件下载示例: ```asp @RestController public class FileDownloadController { private final static String UPLOAD_DIR = "uploads/"; @GetMapping("/download/{filename:.+}") public ResponseEntity<InputStreamResource> downloadFile(@PathVariable String filename) throws IOException { // Load the file File file = new File(UPLOAD_DIR + filename); InputStreamResource resource = new InputStreamResource(new FileInputStream(file)); // Set the content type and headers HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getName()); headers.add(HttpHeaders.CONTENT_TYPE, "application/octet-stream"); // Create and return the ResponseEntity return ResponseEntity.ok() .headers(headers) .body(resource); } } ``` 在上面的代码中,我们创建了一个名为 FileDownloadController 的 REST 控制器,并在 downloadFile 方法中使用 @PathVariable 注解来获取要下载的文件名。然后, 我们使用 FileInputStream 加载要下载的文件,并将其封装在 InputStreamResource 中。接下来,我们设置下载文件的文件名和内容类型,并使用 ResponseEntity 类型返回文件资源。 要测试文件下载功能,请在浏览器中访问以下 URL: ```asp http://localhost:8080/download/your_file_name ``` 在上面的 URL 中,我们使用 your_file_name 替换为要下载的文件名。如果一切顺利,浏览器将会下载指定的文件。 **小结:** Spring Boot 提供了许多方便的功能和库来简化文件上传和下载的实现。我们可以使用 MultipartFile 和 ResponseEntity<InputStreamResource> 来处理上传和下载的文件。通过本文提供的示例代码,我们可以轻松地实现这些功能并将它们集成到我们的 Web 应用程序中。
上一篇:
Spring Boot中实现接收和发送JSON数据
下一篇:
Spring Boot与Thymeleaf模板引擎整合
该分类下的相关小册推荐:
java源码学习笔记
SpringBoot合辑-初级篇
Java语言基础14-枚举和注解
JAVA 函数式编程入门与实践
Java语言基础12-网络编程
Mybatis合辑5-注解、扩展、SQL构建
Java语言基础1-基础知识
Java语言基础10-Java中的集合
Java语言基础9-常用API和常见算法
Java并发编程
Mybatis合辑2-Mybatis映射文件
Mybatis合辑3-Mybatis动态SQL