1. 程式人生 > >通過HTTP請求圖片,同時轉為二進位制流返回

通過HTTP請求圖片,同時轉為二進位制流返回

通過HTTP獲取圖片,經過servlet轉為二進位制流後再輸出出來,最後我們可以通過訪問service直接得到圖片流同時顯示

程式碼:

[java]
  1. /** 
  2.  * 獲取圖片 
  3.  * @param request 
  4.  * @param response 
  5.  */
  6. publicvoid GetImage(HttpServletRequest request    
  7.         , HttpServletResponse response){  
  8.     try {    
  9.            URL url = new URL("http://sd/www/image/co.gif");    
  10.            HttpURLConnection con = (HttpURLConnection)url.openConnection();    
  11.            con .setRequestMethod("GET");    
  12.            con .setConnectTimeout(41000);    
  13.            InputStream inStream = con .getInputStream();//通過輸入流獲取圖片資料  
  14.         byte data[] = readInputStream(inStream);  
  15.         inStream.read(data);  //讀取該資料   
  16.         inStream.close();     
  17.         response.setContentType("image/jpg"
    ); //設定返回的檔案型別   
  18.         OutputStream o = response.getOutputStream();    
  19.         o.write(data);    
  20.         o.flush();    
  21.         o.close();   
  22.        } catch (Exception e) {    
  23.            e.printStackTrace();    
  24.        }   
  25. }  
  26.  publicstaticbyte[] readInputStream(InputStream inStream) throws Exception{    
  27.         ByteArrayOutputStream outStream = new ByteArrayOutputStream();    
  28.         byte[] buffer = newbyte[2048];    
  29.         int len = 0;    
  30.         while( (len=inStream.read(buffer)) != -1 ){    
  31.             outStream.write(buffer, 0, len);    
  32.         }    
  33.         inStream.close();    
  34.         return outStream.toByteArray();    
  35.  }    
  36. /** 
  37.  * 上傳圖片 
  38.  * @param request 
  39.  * @param response 
  40.  */
  41. publicvoid uploadHomeImage(HttpServletRequest request    
  42.         , HttpServletResponse response){  
  43.     //儲存檔案,同時獲取表單中的輸入值對
  44.     Map<String, String> nameValuePair = new HashMap<String, String>();  
  45.     //home圖片儲存物件
  46.     HomeImage homeImage = new HomeImage();  
  47.     //獲取儲存的地址,捕獲引數值對
  48.     String imageUrl = saveUploadFile(request,  "/Upload/HomeImage/", nameValuePair);  
  49.        homeImage.setImageUrl(imageUrl);  
  50.     homeImage.setUploadDate(new Date());  
  51.     settingService.saveOrUpdateHomeImage(homeImage);  
  52.     //資訊介面顯示類
  53.     HomeImagePage responsePage = settingService.getWebHomePage();  
  54.     //將頁面顯示資料類轉化為JSON,並返回到前臺
  55.     responseOutWithJson(response, responsePage);  
  56.     response.setStatus(HttpServletResponse.SC_OK);  
  57. }