[SPRING] 파일 다운로드 자바 봄 휴식 API
SPRING파일 다운로드 자바 봄 휴식 API
get으로 청원 할 때 Excel 파일을 다운로드 할 수있는 휴식 API 컨트롤러 (스프링 부트)를 만들고 싶습니다. 현재이 끝 점이 있습니다.
@RequestMapping(value = "/download.xls", method = RequestMethod.GET)
public ResponseEntity Survey_Reports(@RequestParam(value = "evaluated") String evaluated){
return surveyService.getSurveysFile(evaluated);
}
궁극적 으로이 방법을 호출합니다.
public static ResponseEntity getDownloadResponse() {
File file2Upload = new File("Survey_Reports.xls");
Path path = Paths.get(file2Upload.getAbsolutePath());
ByteArrayResource resource = null;
try {
resource = new ByteArrayResource(Files.readAllBytes(path));
} catch (IOException e) {
logger.error("there was an error getting the file bytes ", e);
}
return ResponseEntity.ok()
.contentLength(file2Upload.length())
//this line doesnt seem to work as i set the file format in the controller request mapping
.contentType(MediaType.parseMediaType("application/vnd.ms-excel"))
.body(resource);
}
download.xls (매핑으로) 파일 일치를 얻으면 모든 것이 반 정도로 작동하는 것처럼 보이지만 이제 다운로드 한 파일에 다음과 같은 특정 이름을 지정하려고합니다. evaluationName.xls 또는 userDateEndDate.xls 또는 다른 것들 응답 엔터티를 편집하는 방법이 있습니까? 매핑 이름을 "download.xls"로 지정할 필요가 없도록
해결법
-
==============================
1.HttpServletResponse 응답의 컨텍스트에서 다음과 같이 할 수 있습니다
HttpServletResponse 응답의 컨텍스트에서 다음과 같이 할 수 있습니다
response.setContentType("application/csv"); response.setHeader("Content-Disposition", "attachment; filename=" + csvName);
ResponseEntity의 경우 다음과 같이 사용할 수 있다고 가정합니다.
ResponseEntity.ok().header("Content-Disposition","attachment; filename=" + csvName );
from https://stackoverflow.com/questions/42767079/download-file-java-spring-rest-api by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Thymeleaf-Javascript 코드 내에서 모델 속성을 반복 (0) | 2019.09.13 |
---|---|
[SPRING] JPA에서 트랜잭션을 롤백하는 방법은 무엇입니까? (0) | 2019.09.13 |
[SPRING] @RefreshScope 및 / refresh가 작동하지 않습니다 (0) | 2019.09.13 |
[SPRING] Spring OAuth2 + JWT 추가 정보를 포함하여 액세스 토큰에 JUST (0) | 2019.09.13 |
[SPRING] 중첩 된 @Transactional (0) | 2019.09.13 |