/**
* 根据图片路径转换成base64
* @param imageUrl
* @return
*/
public static String getBase64(String imageUrl) {
InputStream in = null;
final ByteArrayOutputStream data = new ByteArrayOutputStream();
//读取图片字节数组
try {
URL url = new URL(imageUrl);
final byte[] by = new byte[1024];
// 创建链接获取图片
final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
in = conn.getInputStream();
int len = -1;
while ((len = in.read(by)) != -1) {
data.write(by, 0, len);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
//对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
//返回Base64编码过的字节数组字符串
String encode = encoder.encode(data.toByteArray());
/*encode = encode.replaceAll("[\\s*\t\n\r]", "");*/
return encode;
}
/**
* 根据文件url获取文件并转换为base64编码
*
* @param srcUrl 文件地址
* @param requestMethod 请求方式("GET","POST")
* @return 文件base64编码
*/
public static String netSourceToBase64(String srcUrl, String requestMethod) {
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
byte[] data = new byte[1024 * 8];
try {
// 创建URL
URL url = new URL(srcUrl);
// 创建链接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(requestMethod);
conn.setConnectTimeout(10 * 1000);
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
//连接失败/链接失效/文件不存在
return null;
}
InputStream inStream = conn.getInputStream();
int len = -1;
while (-1 != (len = inStream.read(data))) {
outPut.write(data, 0, len);
}
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
return Base64.encodeBase64String(outPut.toByteArray());
}
java根据路径将图片转base64
于 2021-07-19 13:37:29 首次发布