<!-- 회원 증명사진 이미지 시작 -->
<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도 적용해서 마우스를 올려놓으면 선택 가능하게 했다.
화면 :
<script type="text/javascript">
$(function(){
$(".bg-register-image").on("click", function(){
// alert("${memberVO.memberCertPic}");
$("#ifrm").prop("src","/download?fileName=${memberVO.memberCertPic}");
});
});
</script>
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);
}
이미지를 클릭했을 때 다운로드 된다.