[jsp] MultipartFile로 받은 이미지의 바이너리 추출
자바스크립트로 이미지의 바이너리를 뽑아보려고 했는데 좀처럼 안되어서
결국 이미지를 입력받아서 서버에 MultipartFile로 넘겨주고 바이너리를 돌려받는 형식으로 해결을 하였습니다.
MultipartFile로 넘겨받은 이미지의 바이너리가 필요할때 사용할 수 있는 소스 입니다.
MultipartHttpServletRequest mpRequest = (MultipartHttpServletRequest)request;
Iterator files = mpRequest.getFileNames();
String fileName = "";
while(files.hasNext()){
fileName = (String)files.next();
MultipartFile multiFile = mpRequest.getFile(fileName);
BufferedImage image = ImageIO.read(multiFile.getInputStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
String encodedImage = Base64.encode(baos.toByteArray()); //생성된 바이너리
byte[] blob = multiFile.getBytes();
System.out.println(multiFile.getName()+" / "+encodedImage);
baos.close();
}
이미지 파일이 커서 바이너리를 제대로 생성하지 못할 경우에는 이미지 크기를 바이너리 생성전에 리사이징 후에 처리를 해야합니다.
<img src="https://t1.daumcdn.net/cfile/tistory/2641893B56E6834423" /> 형식으로 웹에서 확인할 수 있습니다.