java远程获取图片生成base64串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java远程获取图片生成base64串相关的知识,希望对你有一定的参考价值。
说下背景,项目中遇到前端js获取图片发生跨域的问题,服务器端又不支持匿名访问,只能通过服务器获取图片base64码进行展示。代码如下:下载
/**
* 远程读取image转换为Base64字符串
* @param imgUrl
* @return
*/
private String Image2Base64(String imgUrl) {
URL url = null;
InputStream is = null;
ByteArrayOutputStream outStream = null;
HttpURLConnection httpUrl = null;
try{
url = new URL(imgUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
httpUrl.getInputStream();
is = httpUrl.getInputStream();
outStream = new ByteArrayOutputStream();
//创建一个Buffer字符串
byte[] buffer = new byte[1024];
//每次读取的字符串长度,如果为-1,代表全部读取完毕
int len = 0;
//使用一个输入流从buffer里把数据读取出来
while( (len=is.read(buffer)) != -1 ){
//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
outStream.write(buffer, 0, len);
}
// 对字节数组Base64编码
return new BASE64Encoder().encode(outStream.toByteArray());
}catch (Exception e) {
e.printStackTrace();
} 下载
finally{
if(is != null)
{
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(outStream != null)
{
try {
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(httpUrl != null)
{
httpUrl.disconnect();
}
}
return imgUrl;
}
以上是关于java远程获取图片生成base64串的主要内容,如果未能解决你的问题,请参考以下文章
Java通过图片url地址获取图片base64位字符串的两种方式
java上传不同类型图片,保存数据库(Base64位图转网络图片)