首页 > 代码库 > 接口上传base64编码图片

接口上传base64编码图片

 1 package com.*.util; 2  3 import java.io.FileInputStream; 4  5  6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.InputStream; 9 import java.io.OutputStream;10 import java.util.Date;11 12 import Decoder.BASE64Decoder;13 import Decoder.BASE64Encoder;14 15 public class Base64ImgUtils {16     public static void main(String[] args) {17         String strImg = GetImageStr();18         System.out.println(strImg);        19         GenerateImage(strImg);20     }21 22     /**23      * 图片转化成base64字符串24      * GetImageStr25      * 2016年8月31日下午3:37:40   26      * @param27      * @return28      */29     public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理30         String imgFile = "D:/486e407765c21edd9cbffca69717efb1.jpg";// 待处理的图片31         InputStream in = null;32         byte[] data = http://www.mamicode.com/null;33         // 读取图片字节数组34         try {35             in = new FileInputStream(imgFile);36             data = http://www.mamicode.com/new byte[in.available()];37             in.read(data);38             in.close();39         } catch (IOException e) {40             e.printStackTrace();41         }42         // 对字节数组Base64编码43         BASE64Encoder encoder = new BASE64Encoder();44         String imghead="data:image/jpg;base64,";//45         return imghead+encoder.encode(data);// 返回Base64编码过的字节数组字符串46     }47 48     /**49      * base64字符串转化成图片50      * GenerateImage51      * 2016年8月31日下午3:33:12   52      * @param53      * @return54      */55     public static String GenerateImage(String imgStr) { // 对字节数组字符串进行Base64解码并生成图片56         if (imgStr == null){ // 图像数据为空57             return "";58         }59         String classPath = new Base64ImgUtils().getClass().getResource("").getPath();60         String path = classPath.substring(0, classPath.indexOf("WEB-INF"));61         System.out.println(path);62         BASE64Decoder decoder = new BASE64Decoder();63         try {64             String imghead=imgStr.substring(0,imgStr.indexOf(";")).replace("data:image/", ".");//获取图片扩展名65             imgStr=imgStr.substring(imgStr.indexOf(",")+1);//图片内容66                                    67             // Base64解码68             byte[] b = decoder.decodeBuffer(imgStr);69             for (int i = 0; i < b.length; ++i) {70                 if (b[i] < 0) {// 调整异常数据71                     b[i] += 256;72                 }73             }74             // 生成jpeg图片75             String filename="upload/"+new Date().getTime()+imghead;//名称76             String imgFilePath =path+"/"+filename;// 新生成的图片77             OutputStream out = new FileOutputStream(imgFilePath);78             out.write(b);79             out.flush();80             out.close();81             return filename;82         } catch (Exception e) {83             return "";84         }85     }86 87     88 }

 

接口上传base64编码图片