java 图片url转base64_JAVA 将base64图片存到本地,同时生成url(代码可以直接运行)...
直接上代码,可以直接运行。唯一需要注意的是sun.misc.BASE64Decoder 这个包可能无法引入。可以参考这个博客设置
https://blog.csdn.net/erlian1992/article/details/79518416
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import sun.misc.BASE64Decoder;
import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException;
import com.sun.org.apache.xml.internal.security.utils.Base64;
public class Test3 {
// 图片路劲层级分隔符
private static String separator = "/";
public static void main(String[] args) throws Base64DecodingException {
Test3 t = new Test3();
//在这里可以直接写入base64的值进行测试
String path = t.saveImg("");
//输出路径
System.out.println(path);
}
public String saveImg(String baseImg) throws Base64DecodingException {
//定义一个正则表达式的筛选规则,为了获取图片的类型
String rgex = "data:image/(.*?);base64";
String type = getSubUtilSimple(baseImg, rgex);
//去除base64图片的前缀
baseImg = baseImg.replaceFirst("data:(.+?);base64,", "");
byte[] b;
byte[] bs;
OutputStream os = null;
String fileName = "";
String nowDate = "";
// 格式化并获取当前日期(用来命名)
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
nowDate = format.format(new Date());
//把图片转换成二进制
b = Base64.decode(baseImg.replaceAll(" ", "+"));
//生成路径
String path = "D:/home/upload/" + separator + "img" + separator + nowDate + separator;
//随机生成图片的名字,同时根据类型结尾
fileName = UUID.randomUUID().toString() + "." + type;
File file = new File(path);
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
File imageFile = new File(path + "/" + fileName);
BASE64Decoder d = new BASE64Decoder();
// 保存
try {
bs = d.decodeBuffer(Base64.encode(b));
os = new FileOutputStream(imageFile);
os.write(bs);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.getLocalizedMessage();
}
}
}
return "img" + separator + nowDate + separator + fileName;
}
public static String getSubUtilSimple(String soap,String rgex){
Pattern pattern = Pattern.compile(rgex);
Matcher m = pattern.matcher(soap);
while(m.find()){
return m.group(1);
}
return "";
}
}
java 图片url转base64_JAVA 将base64图片存到本地,同时生成url(代码可以直接运行)...相关推荐
- java image to base64_Java实现base64图片编码数据转换为本地图片的方法
本文实例讲述了Java实现base64图片编码数据转换为本地图片的方法.分享给大家供大家参考,具体如下: 项目中用到的把base64图片数据转为本地图片的函数 /** * 替换html中的base64 ...
- html引用本地图片不能是桌面的,Img标签与本地文件:/// URL不显示在Microsoft Edge Web浏览器...
在我的桌面应用程序中,我创建了一个临时HTML文件(旨在让用户打印报告),然后通过默认显示网页浏览器.这个HTML文件保存在一个临时文件夹,例如:C:/Users/UserName/AppData/L ...
- 微信小程序中base64转换成图片;uni-app小程序base64转图片;微信小程序base64文件转图片;微信小程序base64图片转图片
将微信小程序的图片转成base64 点击此链接看另一篇 以下是将后端返回的base64转成图片: 方法1:使用微信小程序自带方法 //把base64转换成图片getBase64ImageUrl: (b ...
- Base64图片编码的使用
一.base64编码介绍 二.base64图片使用介绍 三.base64图片编码大小与原图文件大小之间的联系 四.代码实现 一.base64编码介绍 Base64是网络上最常见的用于传输8Bit字节代 ...
- uniapp 之 Base64图片的显示问题以及保存到相册
目录 一.base64 图片显示问题 二.base64 图片保存到相册 一.base64 图片显示问题 uniapp 官网明文指出 image 标签的 src 支持base64 码: 但是 ...
- 【微信小程序】将base64图片保存至本地
需求描述 微信小程序中,下载一个报告文件,直接可获取到的是报告图片的base64格式. 参考文章 1.微信小程序实现图片下载功能 2.微信小程序把base64的图片保存到手机相册 代码实现 1.wxm ...
- java程序如何生成客户端_java webservice生成客户端代码并调用
wsimport简介 在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用web ...
- java 微信开发图片发送,微信开发?Java上传Base64图片
class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...
- Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)
工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...
最新文章
- Android源码学习之handler
- Log4Net 配置
- redis学习(七)jedis客户端
- mysql进阶知识_Mysql面试知识点总结(进阶篇)
- 摔倒、摔倒检测数据集
- python多线程详解_Python多线程详解
- BZOJ1001 狼抓兔子(网络流转最短路:对偶图)
- 2018年值得推荐的20个Bootstrap网站模板
- 物联网老年人健康管理系统源码
- 学习plc编程需要什么基础
- 天载免息股票汽车整车涨幅居前
- 传智播客黑马java 30期_黑马传智播客JavaEE57期 2019最新基础+就业+在职加薪_汇总...
- 每天睡6小时和8小时的区别 看完再不敢熬夜了
- pyton random
- 【C语言程序设计·考试复习】视频讲解课程合集
- 计算机课外活动兴趣小组内容,学校课外兴趣小组活动总结
- 最优化方法之黄金分割法,为什么是0.618?
- 论代码书写规范的重要性——分享一篇良好的代码书写规范,从小白开始培养..(表示太难了吧)
- 七、网络安全之AAA认证技术详解
- Unity制作地震防空知识视频讲解程序