서울땅콩의 취미생활

개요

WAS에서 이미지를 조회할 때, WAS의 웹프로젝트 하위에 저장되어 있지 않고, 외부에 저장되어 있는 이미지를 조회하는 경우를 알아본다. WAS의 웹프로젝트 하위에 저장되어 있다면 단순히 리소스 경로로 접근이 가능하지만 외부에 저장되어 있는 경우는 접근할 수 없기 때문에 그 방법을 알아본다.

 

문제점

이미지 파일 혹은 일반 파일들이 WAS의 웹프로젝트 외부에 저장되어 있는 경우 단순 리소스 조회로 파일을 가져올 수 없는 경우가 있다. 따라서 WAS를 통해서 WAS의 웹프로젝트 외부에 저장되어 있는 파일을 조회하도록 처리한다.

위와 같은 경우에는 별다른 문제없이 조회 가능하다. 그러나 아래와 같은 경우 이미지 조회가 불가능하다. 그렇다면 어떻게 image.png를 조회할 수 있을까?

 

해결

이미지의 경로 자체가 WAS의 웹프로젝트 하위에 존재하지 않고 외부에 존재한다면 아래의 소스를 이용하여 파일을 조회할 수 있다.

물론 클라이언트에서는 /getImages.do 리퀘스트맵핑을 이용하여 호출한다. 파라미터에 fileName을 넘겨주어야 한다는것을 잊지 말자.

 

소스

    /**
	 * 이미지 조회
	 */
	@SuppressWarnings("unchecked")
	@RequestMapping(value = "/getImages.do")
	public void getImages(HttpServletRequest req, ModelMap model, HttpServletResponse response) throws Exception {
		CommonVO vo = new CommonVO(req);

		String fileName = (String) vo.get("fileName");
		
		if(fileName != null){
			BufferedImage image = ImageIO.read(new File(IMAGE_PATH + fileName));
			
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			ImageIO.write( image, "jpg", baos );
			
			baos.flush();
			byte[] imageInByte = baos.toByteArray();
			response.getOutputStream().write(imageInByte);
			baos.close();
		}
	}

공유하기

facebook twitter kakaoTalk kakaostory naver band