SpringBoot中怎么实现文件上传和下载功能

avatar
作者
猴君
阅读量:0

在SpringBoot中实现文件上传和下载功能,通常需要借助Spring的MultipartFile对象来处理文件上传,同时使用OutputStream对象来处理文件下载。以下是一个简单的示例代码:

  1. 文件上传:
@RestController public class FileController {      @PostMapping("/upload")     public String uploadFile(@RequestParam("file") MultipartFile file) {         try {             // 获取文件名             String fileName = file.getOriginalFilename();             // 文件保存路径             String filePath = "C:/upload/";             // 文件保存操作             file.transferTo(new File(filePath + fileName));             return "File uploaded successfully!";         } catch (IOException e) {             e.printStackTrace();             return "Failed to upload file.";         }     }  } 
  1. 文件下载:
@RestController public class FileController {      @GetMapping("/download")     public ResponseEntity downloadFile(@RequestParam String fileName) {         // 文件路径         String filePath = "C:/upload/";         // 获取文件对象         Resource file = new FileSystemResource(filePath + fileName);                  HttpHeaders headers = new HttpHeaders();         headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);                  return ResponseEntity.ok()                 .headers(headers)                 .contentType(MediaType.APPLICATION_OCTET_STREAM)                 .body(file);     }  } 

在以上代码示例中,文件上传时,通过@RequestParam注解获取前端传递的文件对象,然后使用transferTo方法保存文件到指定路径。文件下载时,通过ResponseEntity返回文件资源对象,并设置响应头信息,以实现文件下载功能。

需要注意的是,以上代码只是一个简单的示例,实际开发中可能需要加入更多的逻辑来处理文件上传和下载,比如文件格式验证、文件大小限制等。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!