자바 웹 은 img 에서 디스크 의 그림 을 읽 습 니 다.

3189 단어 Java Web
최근 에 프로젝트 를 만 들 었 습 니 다.사용자 가 사진 을 올 린 후 img 컨트롤 을 통 해 표 시 됩 니 다.img 은 src 속성 을 통 해 그림 을 표시 할 수 있다 는 것 을 잘 알 고 있 습 니 다.예 를 들 어。이렇게 하 는 것 은 아무런 문제 가 없 으 며,많은 친구 들 도 이렇게 할 것 이 라 고 믿는다.
그러나 이렇게 하 는 데 문제 가 있 습 니 다.그림 은 반드시 응용 아래 에 놓 아야 합 니 다.그리고 클 러 스 터 를 만 들 었 다 면 그림 은 여러 애플 리 케 이 션 에 분산 되 어 관리 하기 어렵다.이것 은 우리 가 자 연 스 럽 게 그림 을 한 곳 에 두 었 으 면 좋 겠 다 고 생각 할 것 이다.예 를 들 어 c 디스크 의 img 디 렉 터 리 아래 에 응용 하 는 것 이 좋 겠 다.물론 이렇게 사진 을 올 리 는 것 은 좋 지만 그림 을 읽 으 려 면 어떻게 해 야 합 니까?src 를 통 해서="http://127.0.0.1/a/b/abc.jpg"이런 방법 은 할 수 없어 요.이 때 우 리 는 아래 의 방법 을 통 해 디스크 아래 의 그림 을 읽 을 수 있 습 니 다.
 
@RequestMapping(value="showImg")

   public void ShowImg(HttpServletRequest request,HttpServletResponse response) throws IOException{

       String imgFile = request.getParameter("imgFile"); //   

       String path= UrlUtil.getValue("goodsImg");//             

       FileInputStream fileIs=null;

       try {

        fileIs = new FileInputStream(path+"/"+imgFile);

       } catch (Exception e) {

         log.error("         :"+path+"/"+imgFile);        

         return;

       }

       int i=fileIs.available(); //         

       byte data[]=new byte[i];   

       fileIs.read(data);  //      

       response.setContentType("image/*"); //            

       OutputStream outStream=response.getOutputStream(); //                   

       outStream.write(data);  //          

       outStream.flush();  

       outStream.close();   

       fileIs.close();   

   }

여 기 는 springMVC 프레임 워 크 를 사 용 했 습 니 다.@RequestMapping(value="showImg")은 실제 요청 입 니 다.
이때 우 리 는 img 의 src 를'http://127.0.0.1/a/showImg?imgFile=abc.jpg"그림 을 표시 할 수 있 습 니 다.즉,src 가 요청 주소 로 바 뀌 었 습 니 다.imgFile 다음은 그림 의 이름 입 니 다."

좋은 웹페이지 즐겨찾기