`

java远程获取图片生成base64串

    博客分类:
  • J2SE
 
阅读更多

       说下背景,项目中遇到前端js获取图片发生跨域的问题,服务器端又不支持匿名访问,只能通过服务器获取图片base64码进行展示。代码如下:

/**
 * 远程读取image转换为Base64字符串
 * @param imgUrl
 * @return
 */
private String Image2Base64(String imgUrl) {
	URL url = null;
	InputStream is = null; 
	ByteArrayOutputStream outStream = null;
	HttpURLConnection httpUrl = null;
	try{
		url = new URL(imgUrl);
		httpUrl = (HttpURLConnection) url.openConnection();
		httpUrl.connect();
		httpUrl.getInputStream();
		is = httpUrl.getInputStream();			
		
		outStream = new ByteArrayOutputStream();
		//创建一个Buffer字符串
		byte[] buffer = new byte[1024];
		//每次读取的字符串长度,如果为-1,代表全部读取完毕
		int len = 0;
		//使用一个输入流从buffer里把数据读取出来
		while( (len=is.read(buffer)) != -1 ){
			//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
			outStream.write(buffer, 0, len);
		}
		// 对字节数组Base64编码
		return new BASE64Encoder().encode(outStream.toByteArray());
	}catch (Exception e) {
		e.printStackTrace();
	}
	finally{
		if(is != null)
		{
			try {
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		if(outStream != null)
		{
			try {
				outStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		if(httpUrl != null)
		{
			httpUrl.disconnect();
		}
	}
	return imgUrl;
}

 

0
2
分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例241 基于Base64编码 304 实例242 基于Base64解码 305 实例243 发送简单的Email 306 实例244 发送带附件的Email 308 实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 ...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 mysql版本_spring3.0

    17.新增Lucene全文检索 18.Base64传输图片 19.图片加水印(图片水印,文字水印) 20.生成 or 解析 二维码 21.HTML5 + JAVAEE WebSocket 通信技术 22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    17.新增Lucene全文检索 18.Base64传输图片 19.图片加水印(图片水印,文字水印) 20.生成 or 解析 二维码 21.HTML5 + JAVAEE WebSocket 通信技术 22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度...

    xheditor-1.1.14

    remoteImgSaveUrl:远程图片抓取接收程序URL 参数值:字符串(若不设置不开启此功能) 说明:当localUrlTest测试为false时,会将图片URL发往当前参数指定的服务器端上传接收程序,抓取成功后将本地URL返回并替换 备注...

    asp.net知识库

    常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN...

    Ext Js权威指南(.zip.001

    1.2.6 在java中使用json / 12 1.2.7 更多有关json的信息 / 15 1.3 ext js 4概述 / 15 1.4 ext js的开发工具的获取、安装与配置介绍 / 18 1.4.1 ext designer / 18 1.4.2 在visual studio中实现智能提示 / 23 ...

Global site tag (gtag.js) - Google Analytics