21xrx.com
2025-03-28 13:35:44 Friday
文章检索 我的文章 写文章
JavaEE期末:如何使用Spring Boot实现文件上传和下载
2023-06-17 14:23:31 深夜i     11     0
JavaEE Spring

JavaEE期末:如何使用Spring Boot实现文件上传和下载

在JavaEE的学习中,Spring是一个经常被使用的框架。而在Spring中,Spring Boot是一个更加方便快捷的开发工具。本文将介绍如何使用Spring Boot来实现文件上传和下载功能。

1. 文件上传

在使用Spring Boot来进行文件上传时,主要需要使用到两个类:MultipartFile和multipartResolver。MultipartFile表示上传的文件,multipartResolver则用来解析上传的请求。

首先,在Maven中导入Spring Boot的web和thymeleaf依赖:

org.springframework.boot
 
  
  spring-boot-starter-web
 

  
  org.springframework.boot
 
  
  spring-boot-starter-thymeleaf

然后,在Controller中编写上传文件的代码:

@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
  try {
    // 保存文件到本地
    FileUtils.copyInputStreamToFile(file.getInputStream(), new File("/upload/" + file.getOriginalFilename()));
  } catch (IOException e) {
    e.printStackTrace();
  }
  return "redirect:/success";
}

其中,@PostMapping注解表示处理POST请求;@RequestParam注解表示接收名为"file"的文件。代码中将上传的文件保存到本地的/upload/目录下。保存文件需要使用到commons-io依赖,将其添加至Maven的依赖中:

commons-io
 
  
  commons-io
 
  
  2.6

2. 文件下载

与文件上传相似,文件下载也需要使用到文件和请求解析的相关类。

在Controller中编写文件下载的代码:

@GetMapping("/download")
public ResponseEntity
  download() {
 
  // 获取要下载的文件
  Resource fileResource = new FileSystemResource("/upload/example.txt");
  // 构造一个ResponseEntity对象,返回要下载的文件
  return ResponseEntity
      .ok()
      .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileResource.getFilename())
      .body(fileResource);
}

其中,@GetMapping注解表示处理GET请求。代码中获取了一个名为"example.txt"的文件,并将其构造成ResponseEntity对象。使用"attachment"作为CONTENT_DISPOSITION可以让浏览器以文件下载的方式显示。

3. 关键词

JavaEE、Spring Boot、文件上传、文件下载、MultipartFile、multipartResolver、Resource、ResponseEntity。

  
  

评论区