5c1c0d7858d1b3ec42feae60866c30746bc8c35b.svn-base
4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.thinkgem.jeesite.modules.reg.utils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64 {
/**
* BASE64加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(String key) {
byte[] bt = key.getBytes();
return (new BASE64Encoder()).encodeBuffer(bt);
}
/**
* 对字符串进行Base64解码
*
* @param s
* 要解码的字符串
* @return 返回解码后的字符串
*/
public static byte[] decode(String s) {
BASE64Decoder decoder=new BASE64Decoder();
byte[] bytes=null;
try {
bytes=decoder.decodeBuffer(s);
} catch (IOException e) {
e.printStackTrace();
}
return bytes;
}
/**
* 得到经过Base64解码的图像二进制数据
*/
public static byte[] getImgData(String fileUrl) {
/*
* 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
* 第一部分:data:image/jpeg;base64 中间一个逗号
* 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
*/
//String[] data = fileUrl.split(",");// 这里fileUrl就是前台toDataURL()方法传过来的数据
return Base64.decode(fileUrl);
}
/**
* 保存Base64解码后的二进制数据到文件
*
* @param base64Str
* 经Base64解码后的图片原始二进制数据
* @param path
* 文件路径
*/
public static void saveImage(byte[] imageBytes, String path) {
File file = new File(path);
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file);
outputStream.write(imageBytes);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
closeSteam(outputStream);
}
}
/**
* 关闭文件输出流
*
* @param outputStream
*/
public static void closeSteam(FileOutputStream outputStream) {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 对字符串进行Base64解码
* @param s 要解码的字符串
* @return 返回解码后的字符串
*/
public static String decodeStr(String s,String bm){
BASE64Decoder decoder=new BASE64Decoder();
String decoded_str=null;
try {
decoded_str = new String(decoder.decodeBuffer(s),bm);
} catch (IOException e) {
e.printStackTrace();
}
return decoded_str;
}
public static String decodeStr(String s){
BASE64Decoder decoder=new BASE64Decoder();
String decoded_str=null;
try {
decoded_str = new String(decoder.decodeBuffer(s));
} catch (IOException e) {
e.printStackTrace();
}
return decoded_str;
}
/**
* 得到经过Base64解码的图像二进制数据
*/
public static String getImgDataStr(String fileUrl){
/*
* 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
* 第一部分:data:image/jpeg;base64
* 中间一个逗号
* 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
*/
String[] data=fileUrl.split(",");//这里fileUrl就是前台toDataURL()方法传过来的数据
return Base64.decodeStr(data[1]);
}
/**
* 保存Base64解码后的二进制数据到文件
* @param base64Str 经Base64解码后的图片原始二进制数据
* @param path 文件路径
*/
public static void saveImageStr(String base64Str,String path){
File file=new File(path);
FileOutputStream outputStream=null;
try {
outputStream=new FileOutputStream(file);
outputStream.write(base64Str.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
closeSteam(outputStream);
}
}
}