记录一次Base64.encodeBase64String(data)和BASE64Encoder().encode(data)图片转base64的坑点
问题场景是使用BASE64Encoder().encode(data)将图片转换成base后在本地调试是可以稳定运行的,与前端联调也是没有问题的,但是将服务部署到服务器在页面访问的时候就一直出现转换的图片格式不对的问题,因为BASE64Encoder().encode(data)转换的图片base会有空格什么的,因此也加上了 base64 = base64.replaceAll("\\r\\n","");替换,但是问题依旧没有解决。网上查到的是和base64和BASE64Encoder的区别是加密方式的不同,还有就是转换base64后者出现多余的换行符合空格的问题。感觉问题很奇怪。换成Base64.encodeBase64String(data);后问题解决。
//imagesBase64为远程网络图片地址--url private String judgPicType(String imagesBase64) {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理try {URL url = new URL(imagesBase64);//打开链接HttpURLConnection conn = (HttpURLConnection) url.openConnection();//设置请求方式为"GET"conn.setRequestMethod("GET");//超时响应时间为5秒conn.setConnectTimeout(5 * 1000);//通过输入流获取图片数据InputStream inStream = conn.getInputStream();//得到图片的二进制数据,以二进制封装得到数据,具有通用性ByteArrayOutputStream outStream = new ByteArrayOutputStream();//创建一个Buffer字符串byte[] buffer = new byte[1024];//每次读取的字符串长度,如果为-1,代表全部读取完毕int len = 0;//使用一个输入流从buffer里把数据读取出来while ((len = inStream.read(buffer)) != -1) {//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度outStream.write(buffer, 0, len);}//关闭输入流inStream.close();byte[] data = outStream.toByteArray();//对字节数组Base64编码 String base64 = Base64.encodeBase64String(data); // BASE64Encoder encoder = new BASE64Encoder(); // String base64 = encoder.encode(data); // base64 = base64.replaceAll("\\r\\n","");return base64;} catch (IOException e) {throw BaseException.of(VehicleErrorCode.PARAM_ERROR.of(), "根据图片转base64异常" + e);}}
通过查源码推测感觉是编码方式的问题,浏览器与本地服务的编码一样导致。base64采用的是
Charsets.US_ASCII
而BASE64Encoder采用的是8859_1
记录一次Base64.encodeBase64String(data)和BASE64Encoder().encode(data)图片转base64的坑点相关推荐
- 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示
*本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引 ...
- c#图片base64去转义字符_C#实现字符串与图片的Base64编码转换操作示例
本文实例讲述了C#实现字符串与图片的Base64编码转换操作.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; usin ...
- c#图片base64去转义字符_C#实现字符串与图片的Base64编码转换操作示例|chu
本文实例讲述了C#实现字符串与图片的Base64编码转换操作.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; usin ...
- java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?
摘要: 下文讲述java语言中将图片转换为base64编码的方法分享,如下所示: 例: /* file为图片文件对象 filePath为转换后base64的存储位置 */ public static ...
- Java 图片转Base64以及反转
1.加密(适用于本地图片:D://abc.jpg) public static void main(String[] args) {//String aa = GetImageStr1("D ...
- php 图片文件转base64编码格式,php如何将图片转为base64编码格式
php将图片转为base64编码格式的方法:首先读取图片流:然后利用[base64_encode]函数进行编码格式转换即可. PHP保存Base64图片base64_decode的问题 PHP对Bas ...
- iOS 图片转base64编码
今天有人在群里问,图片怎么转成base64编码?那我就在这里说一说 其实图片转成base64编码,很简单,苹果提供了方法 //图片转base64 UIImage *image = [UIImage i ...
- PHP图片转base64
项目场景: 网络图片转base64,,本地图片转base64 /*** @param $img_file* @return string\* 本地图片转base64*/public function ...
- 前端图片在线转换Base64 图片编码Base64
首先讲一下什么是图片Base64编码: 简单来说,图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 为什么要用Base64? 我们知道,我们所看到的网页上的每一 ...
最新文章
- js实现双击后网页自己主动跑-------Day55
- 11G RAC 进程启动顺序
- 手把手教你用Java实现AOP
- 皮一皮:拦着人类进化的原来是酒精?
- Android之getSystemService
- hdu-3625 Examining the Rooms(斯特灵数第一类)
- Java语言学校的危险性(译文)
- 在SAP BSP view里显示outlook inbox里的邮件
- 看完这些自动化原理图,有一种豁然开朗的感觉
- [剑指offer][JAVA]面试题第[20]题[表示数值的字符串][状态机]
- 基于生成对抗网络的医学数据域适应研究
- JS-面向对象-改变This的指向---使用call方法改变this的指向 / 使用apply方法改变this的指向 / 使用bind方法改变this的指向
- AS3多线程快速入门(一):Hello World[
- Top 100 good english words
- ArrayList打印出来为什么会有空格
- NVIDIA显卡型号有哪些?怎么知道自己电脑的型号?
- ERP系统BOM详细解析
- centos 基础镜像中安装失败,提示:Error: Failed to download metadata for repo ‘AppStream‘: Cannot prepare internal
- ai字母组合发音规律_使用和尚ai的俄语字母分类
- 《赛博朋克2077》安装方法+使用手册。附补丁更新地址