阅读量:0
在SpringBoot中实现文件上传和下载功能,通常需要借助Spring的MultipartFile对象来处理文件上传,同时使用OutputStream对象来处理文件下载。以下是一个简单的示例代码:
- 文件上传:
@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."; } } }
- 文件下载:
@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返回文件资源对象,并设置响应头信息,以实现文件下载功能。
需要注意的是,以上代码只是一个简单的示例,实际开发中可能需要加入更多的逻辑来处理文件上传和下载,比如文件格式验证、文件大小限制等。