文档章节

base64工具类

被毒打的程序猿_先瑞
 被毒打的程序猿_先瑞
发布于 09/17 22:48
字数 270
阅读 13
收藏 0
package util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

import org.apache.commons.lang.StringUtils;

import com.alibaba.druid.util.Base64;

/**
 * @description base64工具类
 * @author 
 * 
 */
public class Base64Util {
	 /**
		 * @desctiption base64转图片 (默认存放Tomcat中upload_files下,默认格式png)
		 * @param strBase64(base64),path(相对路径存储路径),filename(文件名,默认为时间戳)
		 * @author 
		 */
	  public static  boolean  base64ToPic(String strBase64,String path,String filename){
			 if(StringUtils.isEmpty(strBase64)){
				   System.out.println("Base64为空");
				   return false; 
			   }
			 Date date = new Date();
			  long datetime =  date.getTime();
			  String catalina_base=System.getProperty("catalina.base");
			  //上传文件保存位置
			  path =catalina_base+"/upload_files/"+path;
			  File f = new File(path);
			  if(!f.exists()){
				f.mkdirs();
			  }
			 Base64 base = new Base64();

			 byte[] b = base.base64ToByteArray(strBase64);
			 for(int i=0;i<b.length;++i){
				 if(b[i]<0){
					 b[i]+=256;
				 }
			 }
			 String imgFilePath = path+"/"+datetime+".png";
			 if(StringUtils.isNotEmpty(filename)){
				    imgFilePath = path+"/"+filename;
			 }
			 try {
				OutputStream out = new FileOutputStream(imgFilePath);
				out.write(b);
				out.flush();
				out.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("Base64转图片失败");
				return false;
			}
		   
		
		    
		   return true;
	 }
	   
	  /**
	 * @desctiption 图片转base64
	 * @param picPath (文件路径)
	 * @author 
	 */
	  public  static  String picToBase64(String picPath){
		
		  File f = new File(picPath);
		  if(!f.isDirectory()){
			  System.out.println("此文件路径无效!");
			  return null;
		  }
		
	    InputStream in = null;
	    byte[] data = null;
	    try {
			in = new FileInputStream(picPath);
			data = new byte[in.available()];
			in.read(data);
			in.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    Base64 base = new Base64();
	    String base64 = base.byteArrayToBase64(data);
		return base64;
	  }
}

 

© 著作权归作者所有

被毒打的程序猿_先瑞
粉丝 2
博文 28
码字总数 19071
作品 0
信阳
私信 提问
Java base64编码解码工具类

前几天无意中看到Java中有Base64编码,不解的我去百科了一下,了解了Base64的基本使用和实现原理,于是在空暇时自己手动写了一个,这个类可以完成对字母数字的编码和解码工作,但是对于中文,...

摆渡者
2014/03/02
4.9K
0
Java8 BASE64编解码

Java8 BASE64编解码 Base64是一种用64个字符来表示任意二进制数据的方法。 Base64是一种最常见的二进制编码方法。 Java一直缺少BASE64编码 API,以至于通常在项目开发中会选用第三方的API...

秋风醉了
2015/04/02
1K
0
Gaoliang.Zhou/secure-util

secure-util ##简介 Base64编码,消息摘要,对称(DES,3DES,AES,IDEA)/非对称(RSA,ELGamal)加解密,RSA/DSA数字签名,数字证书/密钥库工具类 ##版本信息 V1.2 ~ V1.4 扩展工具类方法和修复bug...

Gaoliang.Zhou
2016/07/13
0
0
微信小程序:照片墙小程序项目总结

项目考察点:弹性布局、伪类、base64 1、弹性布局 弹性布局中心思想就是将父容器设为display: flex,它的所有子元素自动成为容器成员。 在本项目中,可以分为两个大盒子:.row-center和.wrap...

立正小歪牙
2018/07/05
0
0
Java加密解密(二) Base64编码

Base64的由来 Base64最早用于解决电子邮件传输问题。由于“历史问题”,早期的电子邮件网关只允许传输ASCII(二进制为00000000-01111111)字符,如果有非ASCII字符经过这种网关时, 字符的二进...

pseudo
2015/06/12
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
15分钟前
10
0
Java中的面向对象

一、面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现。 对象就是将函数,属性的一种封装。用人们思考习惯的方式思考问题。 如何自定义类 修饰符 类名{ //成...

zhiruochujian
24分钟前
3
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
27分钟前
20
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
40分钟前
7
0
Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
44分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部