说下背景,项目中遇到前端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; }
相关推荐
本实验主要使用GD库、函数的封装和调用实现图片和base64编码数据流的转化,通过本案例转换后得到的base64编码字符串,可以存放到数据库中,需要时可以直接从数据库中读取,减少访问图片时的请求数量。
在这个技术原型中,使用了Base64编码来处理图片,使得图像数据可以以文本形式在网络上传输,而无需生成任何中间文件。这种方法在某些场景下具有优势,例如在安全限制严格的环境中,或者为了提高效率和减少磁盘I/O...
在本例中,我们将探讨如何使用WebSocket从服务端获取图片并在HTML5浏览器上显示,服务端采用Java注解方式实现,并在Tomcat8应用服务器上进行调试。 1. WebSocket基础: WebSocket协议是HTTP/1.1的扩展,通过握手...
【图片生成】 从XML解析出的数据可能包含了图片的相关信息,例如Base64编码的图像数据或者指向外部图像资源的URL。你可以使用Java的`javax.imageio.ImageIO`类来读取和写入图片。如果数据是Base64编码,需要先解码,...
实例241 基于Base64编码 304 实例242 基于Base64解码 305 实例243 发送简单的Email 306 实例244 发送带附件的Email 308 实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 ...
这可能涉及到Servlet的HTTP响应处理,将图像数据编码为Base64字符串或转化为JPEG/PNG等常见格式后再通过HTTP响应发送。 5. **安全性和权限**:由于涉及到服务器端资源的访问,开发者需要确保只有授权的用户或服务能...
- 文件上传:将处理后的图片转换为字节数组或Base64编码,然后通过HTTP请求(如POST)发送到服务器。 2. 文件上传: - 文件选择:使用Intent的ACTION_OPEN_DOCUMENT允许用户从设备选择任意文件。 - 文件读取:...
17.新增Lucene全文检索 18.Base64传输图片 19.图片加水印(图片水印,文字水印) 20.生成 or 解析 二维码 21.HTML5 + JAVAEE WebSocket 通信技术 22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度...
17.新增Lucene全文检索 18.Base64传输图片 19.图片加水印(图片水印,文字水印) 20.生成 or 解析 二维码 21.HTML5 + JAVAEE WebSocket 通信技术 22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度...
remoteImgSaveUrl:远程图片抓取接收程序URL 参数值:字符串(若不设置不开启此功能) 说明:当localUrlTest测试为false时,会将图片URL发往当前参数指定的服务器端上传接收程序,抓取成功后将本地URL返回并替换 备注...
- **Java与JavaScript支持:** 开启或禁用浏览器中的Java和JavaScript功能。 - **在线信息检索:** 如何利用Konqueror进行有效的在线信息查找。 **4.1 Firefox浏览器使用** - **启动与基本操作:** 启动Firefox的...
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 ...