base64图片文件上传OSS,下载OSS图片转换为InputStream,文件转base64,base64转文件工具类
OSSUtils.java
public class OSSUtils { private static Logger logger = LoggerFactory.getLogger(OSSUtils.class); private static final String ACCESS_ID = "阿里云oss参数accessId"; private static final String ACCESS_KEY = "阿里云oss参数accessKey"; public static final String OSS_END_POINT = "http://oss-cn-hangzhou.aliyuncs.com"; //OSS cilent private static final OSSClient client = new OSSClient(OSS_END_POINT, ACCESS_ID, ACCESS_KEY); //base64图片文件上传OSS public boolean uploadAuthBase64FromPreUpdatePic(String key, String base64,String bucket) throws Exception { boolean errorCode = false; InputStream input = null; ObjectMetadata objectMeta = new ObjectMetadata(); // 在metadata中标记文件类型 objectMeta.setContentType("image/*"); try { byte[] bytes = Base64Encoder.decode(base64.getBytes()); objectMeta.setContentLength(bytes.length); input = new ByteArrayInputStream(bytes); PutObjectResult res = client.putObject(bucket, key, input, objectMeta); logger.info("PutObjectResult res=" + GsonUtils.toJson(res)); // 校验文件MD5值 errorCode = true; } catch (Exception e) { logger.error("", e); } finally { if (input != null) { input.close(); } } return errorCode; } /** * 下载OSS图片转换为InputStream * @param key 图片路径 * @param bucket 图片目录 * @return * @throws Exception */ public static InputStream getNormalPicObj(String key,String bucket) throws Exception{ OSSObject object = client.getObject(bucket, key); InputStream objectContent = object.getObjectContent(); return objectContent; } }
FileUtil.java
import org.apache.commons.io.IOUtils; import java.io.*; import java.util.Base64; /** * 文件工具类 */ public class FileUtil { /** * 将文件转base64字符串 * @param path * @return */ public static String fileToBase64(String path) { String base64 = null; InputStream in = null; try { File file = new File(path); in = new FileInputStream(file); byte[] bytes=new byte[(int)file.length()]; in.read(bytes); base64 = Base64.getEncoder().encodeToString(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return base64; } /** * 将文件转base64字符串 * @return */ public static String inputStreamToBase64(InputStream in) { String base64 = null; if (in == null) { return base64; } try { byte[] bytes = IOUtils.toByteArray(in); base64 = Base64.getEncoder().encodeToString(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return base64; } /** * 将文件转base64字符串 * @param file * @return */ public static String fileToBase64(File file) { if(file == null){ return null; } String base64 = null; InputStream in = null; try { // File file = new File(path); in = new FileInputStream(file); byte[] bytes=new byte[(int)file.length()]; in.read(bytes); base64 = Base64.getEncoder().encodeToString(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return base64; } /** * BASE64解码成File文件 * @param destPath * @param base64 * @param fileName */ public static File base64ToFile(String destPath,String base64, String fileName) { File file = null; //创建文件目录 String filePath=destPath; File dir=new File(filePath); if (!dir.exists() && !dir.isDirectory()) { dir.mkdirs(); } BufferedOutputStream bos = null; java.io.FileOutputStream fos = null; try { byte[] bytes = Base64.getDecoder().decode(base64); file=new File(filePath+"/"+fileName); fos = new java.io.FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } return file; } }
标签:文件,String,OSS,base64,bytes,file,new,null From: https://www.cnblogs.com/oktokeep/p/17641854.html