`

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
分享到:
评论

相关推荐

    使用PHP将图片转化为base64数据流

    本实验主要使用GD库、函数的封装和调用实现图片和base64编码数据流的转化,通过本案例转换后得到的base64编码字符串,可以存放到数据库中,需要时可以直接从数据库中读取,减少访问图片时的请求数量。

    java远程监控

    在这个技术原型中,使用了Base64编码来处理图片,使得图像数据可以以文本形式在网络上传输,而无需生成任何中间文件。这种方法在某些场景下具有优势,例如在安全限制严格的环境中,或者为了提高效率和减少磁盘I/O...

    websocket从服务端获取图片

    在本例中,我们将探讨如何使用WebSocket从服务端获取图片并在HTML5浏览器上显示,服务端采用Java注解方式实现,并在Tomcat8应用服务器上进行调试。 1. WebSocket基础: WebSocket协议是HTTP/1.1的扩展,通过握手...

    定时从ftp下载xml并解析为图片

    【图片生成】 从XML解析出的数据可能包含了图片的相关信息,例如Base64编码的图像数据或者指向外部图像资源的URL。你可以使用Java的`javax.imageio.ImageIO`类来读取和写入图片。如果数据是Base64编码,需要先解码,...

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

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

    JSP截取服务端桌面

    这可能涉及到Servlet的HTTP响应处理,将图像数据编码为Base64字符串或转化为JPEG/PNG等常见格式后再通过HTTP响应发送。 5. **安全性和权限**:由于涉及到服务器端资源的访问,开发者需要确保只有授权的用户或服务能...

    安卓拍照上传录像监控录屏相关-安卓图片上传和文件上传带jsp服务端源码.rar

    - 文件上传:将处理后的图片转换为字节数组或Base64编码,然后通过HTTP请求(如POST)发送到服务器。 2. 文件上传: - 文件选择:使用Intent的ACTION_OPEN_DOCUMENT允许用户从设备选择任意文件。 - 文件读取:...

    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返回并替换 备注...

    Suse Linux 10.0参考手册

    - **Java与JavaScript支持:** 开启或禁用浏览器中的Java和JavaScript功能。 - **在线信息检索:** 如何利用Konqueror进行有效的在线信息查找。 **4.1 Firefox浏览器使用** - **启动与基本操作:** 启动Firefox的...

    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