SPRING MVC file download

SPRING MVC file download

파일 Download 구현..

파일 download 를 구현하는 경우 , 컨트롤 class는 download받을 파일과 관련된 정보를 생성해서 뷰에 전달한다.

예시로. File 객체를 download뷰에 전달하는 컨트롤러는.

파일 download 를위한 뷰는 jsp나 velocity가 아니기에, 파일 download를 위한 커스텀 뷰 class를 구현해 줘야 한다

또한, BeanNameViewResolver이나 XmlViewResolver을 이용해서 커스텀 뷰 Class를 사용할 수 있도록 알맞게 설정해야 한다.

예시.

파일 download를 구현하려면 컨테츠 타입을 "application/octet-stream"과 같이 Download를 위한 타입으로 설정해줘야 하고 download 받는 파일이름을 알맞게 설정하기 위해서 Content-Disposition헤더의 값도 알맞게 맞춰줘야한다.

예시.

public DownloadView() { // 생성자를하나 만들고

setContentType("application/download; charset=UTF-8"); // 컨텐츠 타입으로 application/download를 만들고 utf-8을 준다

}

29 - download되는 파일의 크기를 설정.

43 - Content-Disposition헤더를 이용해 전송되는 파일이름을 명시하고

45 - 전송되는 데이터 인코딩이 바이너리 타입이라는 것을 나타낸다..

46 - 파일 download와 관련된 헤더를 알맞게 설정한 뒤 response의 outputstream에 파일을 전송한다.

Spring이 제공하는 유틸리티 Class인 FileCopyUtils Class를 이용해 FileInputStream으로부터 데이터를 읽어와

response의 outputstream을 통해서 출력된다.

출력 결과 : (크롬실행)

from http://workerst.tistory.com/70 by ccl(A) rewrite - 2021-12-28 15:01:33