根據base64轉換成圖片並上傳伺服器
阿新 • • 發佈:2018-12-31
package com.hzlq.appfactory.common.util;
import it.sauronsoftware.base64.Base64;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Random;
public class TestChangeImage {
public static void main(String[] args) { String strImg = GetImageStr(); System.out.println(strImg); GenerateImage(strImg); } // 圖片轉化成base64字串 public static String GetImageStr() {// 將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 String imgFile = "D:/timg.jpg";// 待處理的圖片 InputStream in = null; byte[] data = null; // 讀取圖片位元組陣列 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 對位元組陣列Base64編碼 return new String( Base64.encode(data));// 返回Base64編碼過的位元組陣列字串 } // base64字串轉化成圖片 public static boolean GenerateImage(String imgStr) { // 對位元組陣列字串進行Base64解碼並生成圖片 if (imgStr == null) // 影象資料為空 return false; try { // Base64解碼 byte[] b = Base64.decode(imgStr.getBytes()); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 調整異常資料 b[i] += 256; } } InputStream sbs = new ByteArrayInputStream(b); //h獲取時間戳 Long time=System.currentTimeMillis(); //上傳檔案伺服器 String back=FileToFdfs.uploadFile("http://xxxxx:xxxx/file_server/webFileUpload.do", sbs, time.toString()+".png", sbs.available()); System.out.println(back); return true; } catch (Exception e) { return false; } }
}