셩223
46
2019-01-11 14:59:26 작성 2019-01-11 15:01:06 수정됨
2
290

img src 태그에서 java를 통해 ByteArrayInputStream.read로 이미지를 뿌려주는데 오류가 납니다.


안녕하세요. 스프링 기반 웹 페이지를 관리하고 있습니다.

한 화면에 이미지를 호출할 때

<img src='/action.do?src=~'/>

 와 같은 형식으로 컨트롤러를 타고 이미지를 불러오고 있는데요.


백단에서는 주어지는 경로로 해당 이미지 파일을 찾아서 

new BufferedInputStream(new FileInputStream(new File(src)));

(위와 같이) 로 불러온 후

read -> write 로 화면에 뿌려주고 있습니다.

(경우에 따라 BufferedInputStream.read으로 뿌려주기도

ByteArrayInputStream.read로 뿌려주기도 합니다. 둘다 같은 오류가 발생합니다.)


문제는 Chrome 에서는 원하는 이미지가 잘 나오는데 Internet Explorer에서는 엑스박스가 뜨는 겁니다.


지금까지 알아낸 것은 img태그의 src에 들어가는 경로를 브라우져 주소단에서 직접 들어가서 보면

크롬에 호출되는 것은 Byte형식의 문자열? 이고 

IE에 호출되는 것은 이미지 그 자체라는 겁니다.

그래서 img태그를 embed와 같은 태그로 대체하면 이미지가 보이게 됩니다.

하지만 embed 태그를 조작하기도 어렵고 위와 같은 방식으로 img를 불러오는 곳이 많다보니 근본적인 문제를 파악하여 해결할 수 있는 방법이 있는지 여쭤보고자 합니다.


선배님들의 많은 관심과 도움 부탁드리겠습니다!! 감사합니다!


0
0
  • 답변 2

  • 수평선
    1k
    2019-01-11 15:10:24

    response.setContentType("IMAGE/PNG");  이런식으로 mimetype 한번 설정해보세요..


    0
  • 셩223
    46
    2019-01-11 15:28:13 작성 2019-01-11 15:28:32 수정됨

    수평선 답변 감사합니다! 

    말씀하신 방법도 추가해 봤는데 증상은 같습니다 ㅠㅠ 

    웃긴건 로컬서버 ie 에서는 잘 뜨는데 운영 서버의 ie에서만 유독 문제가 발생하네요...

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.