21xrx.com
2024-09-20 05:54:33 Friday
登录
文章检索 我的文章 写文章
JavaEE期末:如何使用Spring Boot实现文件上传和下载
2023-06-17 14:23:31 深夜i     --     --
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。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复