@GetMapping("/{fileUUID}") public void download(@PathVariable String fileUUID, HttpServletResponse response) throws IOException { // 根据文件的唯一标识码获取文件 File uploadFile = new File(FILE_UPLOAD_PATH + fileUUID); // 设置输出流的格式 ServletOutputStream os = response.getOutputStream(); response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileUUID, "UTF-8")); response.setContentType("application/octet-stream"); // 读取文件的字节流 try { os.write(FileUtil.readBytes(uploadFile)); } catch (Exception e) { System.err.println("文件下载失败,文件不存在"); } os.flush(); os.close(); }
时间: 2023-06-20 08:07:29 浏览: 150
前后端分离-跨域解决方案.docx
这段代码是一个 Spring Boot 的 RestController,用于提供文件下载服务。通过 @GetMapping("/{fileUUID}") 指定了 GET 方法的请求路径,其中的 {fileUUID} 是一个占位符,表示请求路径中的一个参数。在方法体内,首先根据文件的唯一标识码获取文件,然后设置输出流的格式,包括文件名和响应类型。最后通过输出流将文件的字节流写入响应体中,实现文件下载功能。需要注意的是,这里使用了 try-catch 语句来捕获文件读取异常,并在控制台输出错误信息。
阅读全文