java web實現img讀取盤符下的圖像


最近做了一個項目,用戶上傳圖片后通過img控件顯示出來。大家都知道img通過src屬性就可以顯示圖片。如<img src="http://127.0.0.1/a/b/abc.jpg">。這樣做沒有任何問題,相信很多朋友也是這么做的。

但是這樣做有個問題,圖片必須是放在應用下面的。而且如果做了集群的話,那么圖片就分散在富多個應用下面,很不好管理。這是我們自然會想到要是將圖片放在一個地方就好了,最好是在應用外面,比如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后是圖片的名字。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM