import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.binary.Base64;
import comat.common.utils.StrUtil;
import sun.misc.BASE64Encoder;
import sun.net.www.protocol.http.HttpURLConnection;
1.base64通用转码类:
public static String GetImageStr(){
String imgFile = "http://h.hiphotos.baidu.com/image/pic/item/024f78f0f736afc3be94256bb119ebc4b7451227.jpg";
URL url;
HttpURLConnection conn = null;
byte[] data;
String base64Img;
String lines = null;
BufferedInputStream bis = null;
byte[] in_b = null;
byte[] buffer;
try {
//创建URL对象
url = new URL(imgFile);
//返回一个URLConnection对象,它表示到URL所引用的远程对象的连接
conn = (HttpURLConnection) url.openConnection();
//设定请求方式
conn.setRequestMethod("GET");
//建立到远程对象的实际连接
conn.connect();
//返回打开连接读取的输入流
//输出流
InputStream in = conn.getInputStream();
int size = conn.getContentLength(); // 取HTTP请求流长度
buffer = new byte[size]; // 用于缓存每次读取的数据
in_b = new byte[size]; // 用于存放结果的数组
int count = 0;
int rbyte = 0;
// 循环读取
while (count < size){
rbyte = in.read(buffer); // 每次实际读取长度存于rbyte中 sflj
for (int i = 0; i < rbyte; i++){
in_b[count + i] = buffer[i];
}
count += rbyte;
}
}catch(Exception e){
System.out.println("null");
}
base64Img = new String(Base64.encodeBase64(in_b));
System.out.println(base64Img);
return base64Img;
}
2.base64通用解码类:
public static String GenerateImage(String imgStr)
{
byte[] b = Base64.decodeBase64(imgStr);
String path="D:\\aa.jpg";
OutputStream out;
try {
out = new FileOutputStream(path);
out.write(b);
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("上传文件成功!");
return path;
}