programming/jsp

[jsp] 이미지 파일 경로 숨기기

labj 2014. 2. 24. 15:11

[jsp] 이미지 파일 경로 숨기기


Spring Framework를 이용하여 웹서비스를 개발하고 있는데 사용된 예입니다.

이미지 파일은 보통 관리자나 특정 폴더에 위치하게 됩니다.

1) 로그인이 필요한 이미지인 경우이거나

2) 실제 위치가 외부에서 접근 안 되는 경로 일 때

아래처럼 하면 됩니다.


요청한 url에서 이미지명을 가져오고

실제 위치한 곳에서 file을 읽어와서

그걸 FileSystemResource로 리턴하면 됩니다.


    @RequestMapping(value = "/servicelogo/{path1}/{file_name:.+}", method = RequestMethod.GET, produces = "application/octet-stream")
    @ResponseBody
    public FileSystemResource getPublicFile2(
            @PathVariable("file_name") String fileName,
            @PathVariable("path1") String path1,
            HttpServletResponse response) throws Exception {
        Map<String, Object> condition = new HashMap<String, Object>();
        if(path1.equals("front")) {
            condition.put("front_logo_img", fileName);
        } else if(path1.equals("print")) {
            condition.put("print_logo_img", fileName);   
        } else {
            condition.put("front_logo_img", fileName);
        }
       
        String serverFileName = Admin2Service.getServiceLogoFileName(condition);
        logger.debug("serverFileName= "+serverFileName);
       
        if(serverFileName == null || serverFileName.length()==0 || serverFileName.equals("")) serverFileName = "temp.jpg";
       
        String uploadDir = "/upload/serviceLogo";
        File f = new File(messageBundle.getMessage("file.uploadPath") + uploadDir + "/" + serverFileName);
       
        response.setContentType("application/octet-stream");
        return new FileSystemResource(f);
    }


[jsp] 이미지 파일 경로 숨기기