当前位置:网站首页>Base64与File之间的相互转化
Base64与File之间的相互转化
2022-07-29 05:27:00 【魔道不误砍柴功】
问题:最近遇到一个上传文件的问题,前端使用了另一种传值,就是Base64字符串传给后台 ,一开始没有对其进行解码操作,存入数据库时就超长了,今天这里提供一种base64和file之间相互转化的工具类,以便日后参考
/**
*
* @param path
* @return String
* @description 将文件转base64字符串
* @date 2018年3月20日
* @author changyl
* File转成编码成BASE64
*/
public static String fileToBase64(String path) {
String base64 = null;
InputStream in = null;
try {
File file = new File(path);
in = new FileInputStream(file);
byte[] bytes=new byte[(int)file.length()];
in.read(bytes);
base64 = Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return base64;
}
//BASE64解码成File文件
public static void base64ToFile(String destPath,String base64, String fileName) {
File file = null;
//创建文件目录
String filePath=destPath;
File dir=new File(filePath);
if (!dir.exists() && !dir.isDirectory()) {
dir.mkdirs();
}
BufferedOutputStream bos = null;
java.io.FileOutputStream fos = null;
try {
byte[] bytes = Base64.getDecoder().decode(base64);
file=new File(filePath+"/"+fileName);
fos = new java.io.FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}*需要注意:标红的base64在这里需要去掉
baseStr = baseStr.replace("data:image/jpeg;base64,", "");//base64解密部分乱码问题(“+” 号,在urlecode编码中会被解码成空格)
边栏推荐
猜你喜欢

Day16 set

Ram block memory generator of vivado IP core

Scanbasepackages scanning range configuration

5、 Wireless communication network

Hongke white paper | how to use TSN time sensitive network technology to build a digital factory in industry 4.0?

Hongke education you want to enter the field of TSN? Hongke teaches you how to build TSN test system

day06_类与对象

Hongke shares | why EtherCAT is the best solution to improve the performance of the control system?

LDAP简述及统一认证说明

day15_泛型
随机推荐
Ansible(自动化软件)
day03_ 2_ task
Those vulnerability attacks on app
六、 网络互联与互联网
Scanbasepackages scanning range configuration
Plugin location in mavan
Circular linked list and bidirectional linked list
成长为架构师途中的一些思考
day16-集合上
day13_多线程下
注解(Annotation)
Inventory | major network security events of global key information infrastructure
Right value reference and mobile construction
What is the lifecycle of automated testing?
Phishing mail disposal
Hongke automation SoftPLC | Hongke kPa modk operation environment and construction steps (2) -- modk operation environment construction
What is WAF protection
Day16 set
Raw advanced socket experiment
ss命令详解