How to provide large files for download through spring controller ? I followed few discussions on similar topic :
Downloading a file from spring controllers
For Spring , Need use InputStreamResource class in ResponseEntity .
Demo Code :
MediaType mediaType = MediaTypeUtils.getMediaTypeForFileName(this.servletContext, fileName);
System.out.println("fileName: " + fileName);
System.out.println("mediaType: " + mediaType);
File file = new File(DIRECTORY + "/" + fileName);
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok()
// Content-Disposition
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName())
// Content-Type
.contentType(mediaType)
// Contet-Length
.contentLength(file.length()) //
.body(resource);
}
Ref Link : https://o7planning.org/en/11765/spring-boot-file-download-example