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

简述:

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

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


代码:

	/**
	 * 获取图片
	 * @param request
	 * @param response
	 */
	public void GetImage(HttpServletRequest request  
			, HttpServletResponse response){
		try {  
            URL url = new URL("http://csdnimg.cn/www/images/csdnindex_logo.gif");  
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
            conn.setRequestMethod("GET");  
            conn.setConnectTimeout(5 * 1000);  
            InputStream inStream = conn.getInputStream();//通过输入流获取图片数据  
	        byte data[] = readInputStream(inStream);
	        inStream.read(data);  //读数据   
	        inStream.close();   
	        response.setContentType("image/jpg"); //设置返回的文件类型   
	        OutputStream os = response.getOutputStream();  
	        os.write(data);  
	        os.flush();  
	        os.close(); 
        } catch (Exception e) {  
            e.printStackTrace();  
        } 
	}
	
	
	 public static byte[] readInputStream(InputStream inStream) throws Exception{  
	        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
	        byte[] buffer = new byte[2048];  
	        int len = 0;  
	        while( (len=inStream.read(buffer)) != -1 ){  
	            outStream.write(buffer, 0, len);  
	        }  
	        inStream.close();  
	        return outStream.toByteArray();  
	 }  
	 
	 
	
	
	/**
	 * 上传首页图片
	 * @param request
	 * @param response
	 */
	public void UploadHomeImage(HttpServletRequest request  
			, HttpServletResponse response){
		//存储文件,同时获取表单中的输入值对
		Map<String, String> nameValuePair = new HashMap<String, String>();
		
		//户型图片存储对象
		HomeImage homeImage = new HomeImage();
		
		//获取存储的地址,同时捕获参数值对
		String imageUrl = saveUploadFile(request,  "/Upload/HomeImage/", nameValuePair);
		
        homeImage.setImageUrl(imageUrl);
		homeImage.setUploadDate(new Date());
		
		settingService.saveOrUpdateHomeImage(homeImage);
		
		//获取信息界面显示类
		HomeImagePage responsePage = settingService.getWebHomePage();
		
		//将页面显示数据类转化为JSON,返回前端
		responseOutWithJson(response, responsePage);
		response.setStatus(HttpServletResponse.SC_OK);
	}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值