HTTP请求一张图片,转为流返回

简述:

实现用HTTP连接获取一张图片,在servlet中转为流之后输出,这样访问一个service之后就能直接得到图片流并显示出来

类似于访问一个图片的src(html)中会向一个http://localhost:8080/webproj/i.jpg发送请求,于是浏览器就会显示这张图片出来,现在要实现一个后台的service,做的是同样的事情但是请求的却是service,而这个service就返回了图片流回来


代码:

  1. /** 
  2.  * 获取图片 
  3.  * @param request 
  4.  * @param response 
  5.  */  
  6. public void GetImage(HttpServletRequest request    
  7.         , HttpServletResponse response){  
  8.     try {    
  9.            URL url = new URL("http://csdnimg.cn/www/images/csdnindex_logo.gif");    
  10.            HttpURLConnection conn = (HttpURLConnection)url.openConnection();    
  11.            conn.setRequestMethod("GET");    
  12.            conn.setConnectTimeout(5 * 1000);    
  13.            InputStream inStream = conn.getInputStream();//通过输入流获取图片数据    
  14.         byte data[] = readInputStream(inStream);  
  15.         inStream.read(data);  //读数据     
  16.         inStream.close();     
  17.         response.setContentType("image/jpg"); //设置返回的文件类型     
  18.         OutputStream os = response.getOutputStream();    
  19.         os.write(data);    
  20.         os.flush();    
  21.         os.close();   
  22.        } catch (Exception e) {    
  23.            e.printStackTrace();    
  24.        }   
  25. }  
  26.   
  27.   
  28.  public static byte[] readInputStream(InputStream inStream) throws Exception{    
  29.         ByteArrayOutputStream outStream = new ByteArrayOutputStream();    
  30.         byte[] buffer = new byte[2048];    
  31.         int len = 0;    
  32.         while( (len=inStream.read(buffer)) != -1 ){    
  33.             outStream.write(buffer, 0, len);    
  34.         }    
  35.         inStream.close();    
  36.         return outStream.toByteArray();    
  37.  }    
  38.    
  39.    
  40.   
  41.   
  42. /** 
  43.  * 上传首页图片 
  44.  * @param request 
  45.  * @param response 
  46.  */  
  47. public void UploadHomeImage(HttpServletRequest request    
  48.         , HttpServletResponse response){  
  49.     //存储文件,同时获取表单中的输入值对  
  50.     Map<String, String> nameValuePair = new HashMap<String, String>();  
  51.       
  52.     //户型图片存储对象  
  53.     HomeImage homeImage = new HomeImage();  
  54.       
  55.     //获取存储的地址,同时捕获参数值对  
  56.     String imageUrl = saveUploadFile(request,  "/Upload/HomeImage/", nameValuePair);  
  57.       
  58.        homeImage.setImageUrl(imageUrl);  
  59.     homeImage.setUploadDate(new Date());  
  60.       
  61.     settingService.saveOrUpdateHomeImage(homeImage);  
  62.       
  63.     //获取信息界面显示类  
  64.     HomeImagePage responsePage = settingService.getWebHomePage();  
  65.       
  66.     //将页面显示数据类转化为JSON,返回前端  
  67.     responseOutWithJson(response, responsePage);  
  68.     response.setStatus(HttpServletResponse.SC_OK);  
  69. }  


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值