java实现文件和base64互转
maven依赖version由springboot提供
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
文件转base64
public String fileToBase64(String file) {
String ext = file.substring(file.lastIndexOf(".") + 1);
byte[] data = null;
try {
URL url = new URL(file);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
byte[] buffer = new byte[1024*1000];
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
int len;
while ((len = in.read(buffer)) != -1) {
outStream.write(buffer,0,len);
}
data=outStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}
String base64Str = Base64.encodeBase64String(data);
base64Str = "data:image/" + ext + ";base64," + base64Str;
return base64Str;
}
base64转文件
public String base64ToFile(String base64) {
File file = null;
String dateStr = "bbb";
String basedir = localFilePath + "/" + dateStr;
String sqlUrl = "";
File dir = new File(basedir);
if (!dir.exists() && !dir.isDirectory()) {
dir.mkdirs();
}
String[] split = base64.split(",");
String suffix =split .split("/")[1];
base64 = split[split.length-1];
String fileName = "www-" + System.currentTimeMillis() + "." + suffix;
byte[] bytes = Base64.decodeBase64(base64);
FileOutputStream fos = null;
try {
file = new File(basedir + "/" + fileName);
fos = new FileOutputStream(file);
fos.write(bytes);
sqlUrl = "/aaa/" + dateStr + "/" + fileName;
} catch (Exception e) {
logger.error(e.getMessage());
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
logger.error(e.getMessage());
}
}
}
return sqlUrl;
}