实现:base64与图片之间的转换 + 上传的简单实现
1 package com.thinkive.bank.mass.plat.bus.common.util; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.OutputStream; 9 import java.text.SimpleDateFormat; 10 import java.util.Date; 11 12 import sun.misc.BASE64Decoder; 13 import sun.misc.BASE64Encoder; 14 15 /** 16 * base64与图片之间的转换 17 * @author xuwx 18 * 19 */ 20 public class GenerateImage { 21 /** 22 * @描述 base64转换成图片 23 * @param imgStr 24 * @return 25 */ 26 public boolean decoder(String imgStr) { 27 if (null == imgStr) 28 return false; 29 BASE64Decoder decoder = new BASE64Decoder(); 30 try { 31 byte[] b = decoder.decodeBuffer(imgStr); 32 for (int i = 0; i < b.length; i++) { 33 if (b[i] < 0) { 34 b[i] += 256; 35 } 36 } 37 String rootPath=Thread.currentThread().getContextClassLoader().getResource("").toString(); //文件保存根目录位置 38 rootPath=rootPath.substring(rootPath.indexOf("/")); //重新组合根目录位置 39 String lastPath=rootPath+"/uploadFile/"; //最终组合的保存文件夹 40 File file=new File(lastPath); 41 if(!file.exists()) 42 { 43 file.mkdir(); 44 } 45 String nowTime=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); //时间戳,防止文件重名 46 String imgFilePath = lastPath+"电子签名("+nowTime+ ").jpg"; 47 OutputStream out = new FileOutputStream(imgFilePath); 48 out.write(b); 49 out.flush(); 50 out.close(); 51 return true; 52 } catch (Exception e) { 53 return false; 54 } 55 } 56 57 /** 58 * @描述 图片转换成base64 59 * @param imgStr 60 * @return 61 */ 62 public String encoder() 63 { 64 File file=new File("H:/图片/金属合金.jpg"); 65 FileInputStream input=null; 66 byte[] data =null; 67 try { 68 input=new FileInputStream(file); 69 data=new byte[input.available()]; 70 input.read(data); 71 input.close(); 72 } catch (FileNotFoundException e1) { 73 e1.printStackTrace(); 74 } catch (IOException e1) { 75 e1.printStackTrace(); 76 } 77 78 BASE64Encoder e=new BASE64Encoder(); 79 return e.encode(data); 80 } 81 /** 82 * 测试代码 83 * @param args 84 */ 85 public static void main(String[] args) { 86 GenerateImage gen=new GenerateImage(); 87 String encoderStr=gen.encoder(); 88 gen.decoder(encoderStr); 89 } 90 }
时间: 2024-10-10 14:31:11