[Spring] 사진 다운로드
JSP
1. 화면에서 다운로드 허용할 이미지에 iframe 속성을 추가한다. (display:none; 으로 보이지 않게)
<!-- 회원 증명사진 이미지 시작 -->
<div class="col-lg-5 d-none d-lg-block bg-register-image"
style="background-image:url('/resources${memberVO.memberCertPic}');background-repeat:no-repeat;cursor:pointer"
alt="클릭하면 다운" title="클릭하면 다운"></div>
<iframe id="ifrm" name="ifrm" style="display:none;"></iframe>
<!-- 회원 증명사진 이미지 끝 -->
style - cursor도 적용해서 마우스를 올려놓으면 선택 가능하게 했다.
화면 :
2. 해당 iframe에 자바스크립트 추가
<script type="text/javascript">
$(function(){
$(".bg-register-image").on("click", function(){
// alert("${memberVO.memberCertPic}");
$("#ifrm").prop("src","/download?fileName=${memberVO.memberCertPic}");
});
});
</script>
- 해당 iframe을 클릭했을 때 =>
/download?fileName=해당 member의 사진경로가 Controller로 넘어간다.
Controller
- JSP에서 받은 요청 /download에 parameter fileName을 받아서 진행된다.
ResponseEntity<Resource> - Resource는 org.springframework.core.io.Resource의 Resource이다.
@ResponseBody
@RequestMapping(value="/download",
produces=MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<Resource> downloadFile(@RequestParam String fileName){
///resources/upload/ksh.jpg
//Java의 정규표현식에서 \와 $ 사용할 때, 오류 발생
logger.info("download file : " + fileName);
String downloadPath = "D:\\A_TeachingMaterial\\6.JspSpring\\workspace\\springProj\\src\\main\\webapp\\resources" +
fileName.replaceAll("/", Matcher.quoteReplacement("\\"));
logger.info("downloadPath : " + downloadPath);
Resource resource = new FileSystemResource(downloadPath);
logger.info("resource : " + resource);
String resourceName = resource.getFilename();
HttpHeaders headers = new HttpHeaders();
try {
//Content-Disposition : 파일 이름에 한글인 경우 저장 시 깨지는 문제를 막기 위함
headers.add("Content-Disposition", "attachment;filename=" + new String
(resourceName.getBytes("UTF-8"), "ISO-8859-1"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return new ResponseEntity<Resource>(resource, headers, HttpStatus.OK);
}
결과
이미지를 클릭했을 때 다운로드 된다.
Author And Source
이 문제에 관하여([Spring] 사진 다운로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gksmf6699/Spring-사진-다운로드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)