@RestController
@RequestMapping("/file")
public class FileDownController {
@RequestMapping("download")
public ResponseEntity<InputStreamResource> downloadFile() throws Exception {
FileInputStream inputStream = new FileInputStream(new File("D:\\abc.jpg"));
// 文件名中文会乱码,解决
String encode = URLEncoder.encode("中文图片.jpg", StandardCharsets.UTF_8);
// 文件太大会oom,解决
InputStreamResource resource = new InputStreamResource(inputStream);
return ResponseEntity.ok()
// 文件类型,流
.contentType(MediaType.APPLICATION_OCTET_STREAM)
// 文件大小
.contentLength(inputStream.available())
// Content-Disposition,内容处理方式
.header("Content-Disposition", "attachment;filename=" + encode)
.body(resource);
}
}