2012-05-14 5 views
1

Java6, Struts2.2.3.1 - 바이트 배열을 이미지 (jpg)로 변환합니다. 파이어 폭스 나 크롬Bytearray의 이미지가 IE8에서 완성되지 않았습니다.

http://jsbin.com/aheliy/2

자바에서 잘 열립니다 반면
내가 문자열 MiGBase64를 사용 들일 ByteArray를 인코딩 및 변환 당신이 IE에서이 문제를 열면 이미지가 완료되지 않은, 아래 링크를 참조하시기 바랍니다 - this.bean.imageByteArrayString의 형식은 빈

this.bean.setImageByteArrayString(new Base64().encodeToString(imageInByteArr, false)); 

JSP

을 의미 곳
<img src="data:image/jpg;base64,<c:out value='${bean.imageByteArrayString}'/>" /> 

IE8에서 이것이 작동하지 않는 이유를 잘 모릅니다.

답변

3

IE8의 데이터 URI 체계에는 32KB 제한이 있습니다. the wikipedia article on the subject도 참조하십시오.

대신 정상적인 URL을 생성하고 이미지를 제공 할 서블릿이 있거나 이미지가 실제로 웹 서버의 디스크 파일 시스템에있는 경우 다른 웹 애플리케이션 컨텍스트를 만들어 참조 할 수 있도록하는 것이 좋습니다. URL로 직접.

+0

감사합니다. 또한이 크기 제한을 알고 있지만 IE에서 부분 이미지의 크기를 확인할 때 거의 750kb입니다. 그래서 약간 혼란스러워. bean에서 id, desc 등과 같은 다른 속성을 가진 bytearray로부터 이미지를 검색하고 이미지 검색을위한 추가 서버 히트를 피하고자한다. webservice에서이 이미지 배열을 가져오고 파일 시스템에이 이미지 배열이 없습니다. – SyAu

+0

img 태그에 바이트 배열을 할당하는 원래의 계획을 폐기했습니다. IE8에서 올바르게 가져올 수 없었기 때문입니다. 이제 struts 액션 클래스를 사용하여 바이트를 출력 스트림으로 출력하여 이미지를 렌더링합니다. – SyAu

관련 문제