Spring MVC : large files for download, OutOfMemoryException

前端 未结 2 1890
温柔的废话
温柔的废话 2020-12-05 03:22

How to provide large files for download through spring controller ? I followed few discussions on similar topic :

Downloading a file from spring controllers

2条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-05 04:17

    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

提交回复
热议问题