Topic -
val contentDisposition = "attachment; filename=\"${myFileName}\""
김영한님 Spring MVC 강의 2편의 파일 다운로드 부분 학습중에 위와 같이 HTTP Header - Content - Disposition 을 설정하는 것을 보았는데, 위 처럼 문자열로 작성하는 것은 불편하며 실수하기 쉬워 보인다. Spring에서 제공하는 builder 패턴을 활용하여 실수할 위험이 적은 코드로 작성해보자.
적용 방법
@GetMapping("/attach/{itemId}")
fun downloadFile(@PathVariable itemId : Long): ResponseEntity<Resource> {
... ( db에서 itemId 에 해당하는 file(item) 찾기. )
item?.let {
...
val contentDisposition = ContentDisposition
.attachment()
.filename(uploadFileName,StandardCharsets.UTF_8)
.build()
.toString()
return ResponseEntity
.status(HttpStatus.OK) // .ok() 로도 작성 가능.
.header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition)
.body(파일정보)
}?: throw MalformedURLException()
}
[Comment]
1. 여름 휴가, 사무실 이사, 예비군 겹쳐서 7월 동안 쉬기만 하다보니까 나태해진 것 같다. 다시 강의 보면서 궁금한 것들 좀 찾아보면서 공부 해야겠다 ...
[Reference]
'웹개발 - Back 관련 > Spring-DB' 카테고리의 다른 글
[Kotlin Spring] Jdbc RowMapper - BeanPropertyRowMapper, DataClassRowMapper 작동원리 (0) | 2024.08.21 |
---|---|
[Kotlin Spring] JDBC 개념과 구성 정리해보기 (0) | 2024.08.16 |
[Kotlin Spring] Connection, Connection Pool, DataSource 개념과 작동원리 (0) | 2024.08.14 |