1. 컨트롤 부분
@Autowired
ResourceLoader resourceLoader;
// 파일의 위치
@Value("${file.path}")
private String file_Path;
@RequestMapping("/fileDownload")
public ResponseEntity<InputStreamResource> download(
@RequestParam(defaultValue = "test") String fName
) throws IOException {
System.out.println("fName = " + fName);
// 파일 경로
String path = file_Path + File.separator + fName;
// 파일 존재 유무
boolean fExist = _FileUtil.fileExistInfo(path);
if(fExist) {
File file = new File(path);
String fileName = file.getName();
// 파일 확장자
String ext = fileName.substring(fileName.lastIndexOf(".") + 1);
HttpHeaders header = new HttpHeaders();
Path fPath = Paths.get(file.getAbsolutePath());
header.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+fileName);
header.add("Cache-Control", "no-cache, no-store, must-revalidate");
header.add("Pragma", "no-cache");
header.add("Expires", "0");
// 대용량일 경우 resource3을 사용해야함
// ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(fPath ));
// Resource resouce2 = resourceLoader.getResource(path);
InputStreamResource resource3 = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok()
.headers(header)
.contentLength(file.length())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource3);
}
return null;
}
2. 테스트 하기
# 1.zip 파일 다운 받기
'[Spring] > 파일업로드' 카테고리의 다른 글
[SpringMVC] 4. 파일업로드(File Upload) Rest로 하기 (0) | 2020.10.04 |
---|---|
[SpringMVC] 3. 파일업로드(File Upload) 페이지 (0) | 2020.10.04 |
[SpringMVC] 2. 파일업로드(File Upload) 컨트롤러 구성 (0) | 2020.10.04 |
[SpringMVC] 1. 파일업로드(File Upload) 설정 부분 (0) | 2020.04.12 |