package com.dlxx.util; import org.springframework.web.multipart.MultipartFile; import sun.misc.BASE64Encoder; import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; public class ImageUtils { /** * 图片转字符串 * * @param file ---》文件路径 * @return ---》图片对应的字符串 */ public static String getImageStr(String file) { InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream(file); data = new byte[inputStream.available()]; inputStream.read(data); } catch (IOException e) { e.printStackTrace(); } finally { try { if (inputStream != null) { inputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data); } /** * 保存图片到本地 * * @param file 文件 * @return 返回结果 */ public static String savePic(MultipartFile file) { OutputStream os = null; InputStream inputStream = null; File tempFile = null; String path = ""; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); String dateNowStr = sdf.format(new Date()); path = "/domain/file/" + dateNowStr + "/"; // path = "D:"+File.separator+"domain"+File.separator+"file"+File.separator+dateNowStr+File.separator; inputStream = file.getInputStream(); // 2、保存到临时文件 // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流保存到本地文件 tempFile = new File(path); if (!tempFile.exists()) { tempFile.mkdirs(); } path = tempFile.getPath() + File.separator + file.getOriginalFilename(); os = new FileOutputStream(path); /* 开始读取 */ while ((len = inputStream.read(bs)) != -1) { os.write(bs, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { // 完毕,关闭所有链接 try { os.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } return path; } }