[Spring] 첨부파일의 다운로드
이전 글
2021.08.26 - [Spring] - [Spring] 브라우저에서 파일 업로드 후 처리 (썸네일 처리 등)
2021.08.24 - [Spring] - [Spring] Ajax 파일 업로드 후, 업로드된 파일 데이터 반환
2021.08.24 - [Spring] - [Spring] 썸네일 이미지 생성
2021.08.24 - [Spring] - [Spring] 파일 업로드, 파일명 중복 방지를 위한 UUID 적용
2021.08.24 - [Spring] - [Spring] 년월일 폴더 생성, 날짜 폴더 생성
2021.08.24 - [Spring] - [Spring] 파일 확장자, 파일 사이즈 확인하여 파일 업로드 제한하기
2021.08.23 - [Spring] - [Spring] Ajax를 이용하는 파일 업로드
2021.08.22 - [Spring] - [Spring] 파일 업로드 설정하기 (xml방식, Java방식)
첨부파일의 다운로드는 서버에서 MIME 타입을 다운로드 타입으로 지정하고, 적절한 헤더 메시지를 통해 다운로드 이름을 처리합니다. 이미지와 달리 일반 파일들은 MIME 타입으로 고정됩니다.
UpdateController의 일부
ResponseEntity< >의 타입은 byte[ ] 등을 사용할 수 있으나, org.springframework.core.io.Resource 타입을 이용해서 요청한 파일을 서버에서 인식할 수 있는지 체크합니다.
http://localhost:8080/download?fileName=2021/08/25/T.png
서버 로그
서버에서 파일의 경로가 확인되면 ResponseEntity<>를 처리합니다. HttpHeaders 객체를 이용해서 다운로드 시 파일의 이름을 처리하도록 합니다.
UpdateController 클래스 수정
MIME 타입은 다운로드를 할 수 있는 'application/octet-stream'으로 지정하고, 다운로드 시 저장되는 이름은 'Content-Disposition'을 이용해 지정합니다. 파일 이름에 대한 문자열 처리는 파일 이름이 한글인 경우 깨지는 문제를 막기 위함입니다.
위에서 호출했던 것을 다시 호출하면 해당 파일을 다운로드하게 됩니다.
브라우저 하단부에 파일이 설치된 것을 확인할 수 있습니다. (브라우저 크롬 기준)
업로드된 후 다운로드 처리
Ajax 파일 업로드 처리 후, 파일 이미지를 클릭하면 다운로드 될 수 있도록 처리합니다.
uploadAjax.jsp
일반 첨부파일 업로드 후 이미지 클릭(<img> 태그 클릭)하면 자동으로 다운로드 처리되는 것을 확인할 수 있습니다.
다음은 서버에서 파일 이름에 UUID가 붙은 부분을 제거하고 순수하게 다운로드되는 파일 이름으로 저장될 수 있도록 합니다.
UploadController 클래스 수정
수정 후 테스트 (첨부파일 업로드 후 다시 다운로드)
'java, spring' 카테고리의 다른 글
[Spring] 원본 이미지 보여주기 (0) | 2021.08.28 |
---|---|
[Spring] 첨부파일 다운로드, IE/Edge 브라우저의 문제 해결 (0) | 2021.08.27 |
[Spring] 브라우저에서 파일 업로드 후 처리 (썸네일 처리 등) (0) | 2021.08.26 |
[Spring] Ajax 파일 업로드 후, 업로드된 파일 데이터 반환 (0) | 2021.08.24 |
[Spring] 썸네일 이미지 생성 (0) | 2021.08.24 |