base64图片文件上传OSS,下载OSS图片转换为InputStream,文件转base64,base64转文件工具类
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;
} }
base64图片文件上传OSS,下载OSS图片转换为InputStream,文件转base64,base64转文件工具类的更多相关文章
- afinal 文件上传、下载、图片加载实例
// Afinal框架讲解 public class AfinalActivity extends FinalActivity { @ViewInject(id=R.id.bt_afinal_load ...
- java文件上传、下载、图片预览
多文件保存到本地: @ResponseBody @RequestMapping(value = "/uploadApp",produces = { "applica ...
- servlet3.0文件上传与下载
描述:文件上传与下载是在JavaEE中常见的功能,实现文件上传与下载的方式有多种,其中文件上传的方式有: (1)commons-fileupload: (2)Servlet 3.0 实现文件上传 (3 ...
- java代码实现ftp服务器的文件上传和下载
java代码实现文件上传到ftp服务器: 1:ftp服务器安装: 2:ftp服务器的配置: 启动成功: 2:客户端:代码实现文件的上传与下载: 1:依赖jar包: 2:sftpTools 工具类: ...
- ExtJS+SpringMVC文件上传与下载
说到文件上传.下载功能,网络上大多介绍的是采用JSP.SpringMVC或者Struts等开源框架的功能,通过配置达到文件上传.下载的目地.可是最近项目要用到文件上传与下载的功能,因为本项目框架采用开 ...
- 精讲响应式WebClient第4篇-文件上传与下载
本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
- PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例
网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. http://blog.csdn.net/cqcre/arti ...
- js插件---IUpload文件上传插件(包括图片)
js插件---IUpload文件上传插件(包括图片) 一.总结 一句话总结:上传插件找到真正上传位置的代码,这样就可以知道整个上传插件的逻辑了, 找资料还是github+官方 1.如何在js中找到真正 ...
- Struts2入门(七)——Struts2的文件上传和下载
一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...
随机推荐
- 谁来拯救存量SGX1平台?又一个内核特性合并的血泪史
简介: 今天的故事主角,是一个被称为Flexible Launch Control的SGX平台特性. 前言 自从Intel内核开发人员Jarkko Sakkinen于2017年9月2日在inte ...
- 一文详解Redis中BigKey、HotKey的发现与处理
简介: 在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为"大key")及HotKey(下文将其称为"热key").大Key与热Key如果未能及 ...
- [FAQ] Cordova 模拟器中不能访问域名, 未联网 ?
首先保证电脑已联网,然后打开模拟器的浏览器输入常用网址,看看是否能够联网. 如果访问失败,在本机中在 cmd 中 ping www.baidu.com 获得百度的ip地址,然后在浏览器中输入 http ...
- dotnet 在 WPF 里显示数学 π 的颜色
有逗比小伙伴问我,数学的 π 视觉效果是啥.于是我就来写一个逗比的应用将 π 的颜色在 WPF 应用画出来.原理就是读取 π 的小数点后的数值,然后使用逗比算法转换为 RGB 颜色像素,接着将这些像素 ...
- k3s入门与实战---适配边缘计算场景的轻量级的k8s(一)
一.k3s介绍 1.1 什么是k3s? k3s 是经过 CNCF 认证的由 Rancher 公司开发维护的一个轻量级的 Kubernetes 发行版,内核机制还是和 k8s 一样,但是剔除了很多外部依 ...
- vue解决二级路由redirect(默认路由)不传参的问题
场景: pageA----pageB(pageB包含三个二级路由) 默认进入pageB时进入第一个页面的路由,之后点击左侧按钮,分别进入其他二级路由 原router.js写法: //应用信息 ...
- SqlServer使用总结
-- 新增主键,系统随机取名 ALTER TABLE "T_CS1" ADD PRIMARY KEY CLUSTERED ("ID1", "ID2&q ...
- VSCode+VUE+ESLint以达到保存自动格式化
首先打开VSCode在.eslintrc.js中加入以下代码(不知道怎么找可以ctrl+shift+p进行搜索),添加 vscode 终端启动服务 // 添加⾃定义规则 'prettier/prett ...
- 第十届山东省大学生程序设计竞赛题解(A、F、M、C)
部分代码define了long long,请记得开long long A. Calandar 把年份.月份.单个的天数全都乘以对应的系数转化成单个的天数即可,注意最后的结果有可能是负数,要转化成正数. ...
- centos7 hpc高性能计算集群配置(无密码访问、nfs文件共享)
0.检查硬件的超线程 由于模型运行时,每个进程几乎都会占用100%的CPU计算能力,开启超线程之后,每个进程最多使用每个核心50%的计算能力,导致程序运行变慢. 1,物理CPU个数:cat /proc ...