Base64相关
2017-10-20 00:00
10 查看
在工程springboot-ueditor中有测试:
链接:https://github.com/wtkid/workspace_G/tree/master/ideaprojects/spirngboot-ueditor
Base64图片保存是以String的形式存储的,页面上img标签显示图片的方式:
①src直接填写这个字符串是可以显示的,
②src填写的如果是一个url,并且这个url是以流的方式输出的图片。
那如果url不是以流的形式输出的,而是返回base64的一串string,name直接填这个url能否显示图片呢,答案是不能,所以我们需要将这个String转换成流的方式输出,以下是转流的工具类。
注意:spring自己也有一套org.springframework.util.Base64Utils也可以用。
![](https://static.oschina.net/uploads/space/2017/1020/123215_3uS8_3298044.png)
以下是方法:
![](https://static.oschina.net/uploads/space/2017/1020/123234_aXoN_3298044.png)
我自己的Base64utils.
链接:https://github.com/wtkid/workspace_G/tree/master/ideaprojects/spirngboot-ueditor
Base64图片保存是以String的形式存储的,页面上img标签显示图片的方式:
①src直接填写这个字符串是可以显示的,
②src填写的如果是一个url,并且这个url是以流的方式输出的图片。
那如果url不是以流的形式输出的,而是返回base64的一串string,name直接填这个url能否显示图片呢,答案是不能,所以我们需要将这个String转换成流的方式输出,以下是转流的工具类。
注意:spring自己也有一套org.springframework.util.Base64Utils也可以用。
![](https://static.oschina.net/uploads/space/2017/1020/123215_3uS8_3298044.png)
以下是方法:
![](https://static.oschina.net/uploads/space/2017/1020/123234_aXoN_3298044.png)
我自己的Base64utils.
package com.wt.ueditor.utils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @Description * @Author: wangtao * @Date:12:09 2017/10/20 * @Email:tao8.wang@changhong.com */ public class Base64Utils { public static String encode(InputStream is) throws IOException { BASE64Encoder encoder = new BASE64Encoder(); byte[] data = new byte[is.available()]; is.read(data); is.close(); String str = encoder.encode(data); return str; } public static InputStream decode(String file) throws Exception { BASE64Decoder decoder = new BASE64Decoder(); byte[] bytes = decoder.decodeBuffer(file); //测试时发现不调整异常数据也正确,为了避免以后出错,加上这一段 for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } InputStream in = new ByteArrayInputStream(bytes); return in; } public static void toOutputStream(String file, OutputStream os) { try { InputStream in = decode(file); inputStreamToOutputStream(in, os); } catch (Exception e) { e.printStackTrace(); } } public static void inputStreamToOutputStream(InputStream in, OutputStream os) throws IOException { byte[] b = new byte[4096]; Integer len = -1; while ((len = in.read(b)) != -1) { os.write(b, 0, len); } os.flush(); in.close(); os.close(); } }
相关文章推荐
- JS 图片转base64编码实现及相关问题
- Python之数据加密与解密及相关操作(hashlib、hmac、random、base64、pycrypto)
- ios开发Base64编码以及加密相关学习
- 整理下Base64相关的东西(OpenSSL/GO...)
- base64相关处理
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- Android util 包 相关类解析二 Base64
- Java中用到BASE64Decoder相关错误
- SpringMvc 相关,bean map转换,百度天气,base64.js,jsBase64.java;
- js对象封装内部图片的相关代码,采用base64图片串
- Base64与百分号编码相关 - iOS
- 关于适用base64对图片进行编码在服务器上性能的相关讨论
- 数据库中时间存储类型相关
- SHA1 MD5 BASE64 AES 加密解密
- 线程同步,锁的相关问题
- 学习安卓相关的网站
- 线性模型——异方差、序列相关、多重共线性与内生性的处理
- Linux shell中的I/O重定向相关(转)
- 移动互联网相关应用网站
- ADO.NET 数据集中浏览多个相关表 5