springboot比较方便的下载方式,在此记录一下
public ResponseEntity<FileSystemResource> export(File file) { if (file == null) { return null; } HttpHeaders headers = new HttpHeaders(); headers.add("Content-Disposition", "attachment;filename=" + file.getName()); return ResponseEntity .ok() .headers(headers) .contentLength(file.length()) .contentType(MediaType.parseMediaType("application/octet-stream")) .body(new FileSystemResource(file)); }
使用方式如下:
@RequestMapping("/downLoadImg") public ResponseEntity<FileSystemResource> downLoadImg(HttpServletRequest request) { String imgPath = request.getParameter("img"); //文件路径 String filePath = SDKUtils.getImgPath() + imgPath; return export(new File(filePath)); }
文件上传方式
@PostMapping(value = "/upload") public CommonResult upload(@RequestParam("file") MultipartFile file) { String fileName = file.getOriginalFilename(); //FileUtil 是使用hutool 工具类的 touch : 创建文件,如果父目录不存在也自动创建 //resourceConfig.getImageUrl() 存储路径 File mkdir = FileUtil.touch(resourceConfig.getImageUrl() + fileName); try { //据说性能不错,使用方便,还没验证 file.transferTo(mkdir); return CommonResult.success("上传成功"); } catch (IOException e) { e.printStackTrace(); } return CommonResult.error("上传失败"); }