1. 程式人生 > >java實現網路圖片轉換為base64字串

java實現網路圖片轉換為base64字串

功能需求:將網路圖片轉換為base64字串傳給前端

lg:String url = "https://www.baidu.com/369270f.jpg";

base64轉碼之後:

url = "/9j/4AAQSkZJRg......G9AFqq6";

程式碼實現:

package test;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import sun.misc.BASE64Encoder;


public class Base64Util {
 
     public static void main(String[] args) {
         String filePath = "https://www.baidu.com/369270f.jpg";//待處理的圖片
         System.out.println(GetImageStrFromUrl(filePath));//轉換後的base64字串
     }
     
     /**
      * 將一張網路圖片轉化成Base64字串
     * @param imgURL
     * @return
     */
    public static String GetImageStrFromUrl(String imgURL) {  
     	ByteArrayOutputStream data = new ByteArrayOutputStream();
         try {
             // 建立URL
             URL url = new URL(imgURL);
             byte[] by = new byte[1024];
             // 建立連結
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
             conn.setRequestMethod("GET");
             conn.setConnectTimeout(5000);
             InputStream is = conn.getInputStream();
             // 將內容讀取記憶體中
             int len = -1;
             while ((len = is.read(by)) != -1) {
                 data.write(by, 0, len);
             }
             // 關閉流
             is.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
         // 對位元組陣列Base64編碼
         BASE64Encoder encoder = new BASE64Encoder();
 		return encoder.encode(data.toByteArray());
     }  
     
     
    
 }

如果需要在轉換工具中檢驗是否轉換成功,則需要在轉換後的編碼前面加:"data:image/jpg;base64, "