Controller
 @PostMapping("/save")
    public R save(@RequestBody ShareEntity share){
        OSSClient oss = new OSSClient(GlobalConfig.domain, GlobalConfig.AccessKeyID,GlobalConfig.AccessKeySecret);
        InputStream inputStream1;
            String[] shartimg = new String[2];
        if(!share.getShareImg().isEmpty()){ //base64所在字段
             shartimg = share.getShareImg().split(",");
             int index = shartimg[0].indexOf("/");
             int endindex = shartimg[0].indexOf(";");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            String date = sdf.format(new Date());
            String endName  = shartimg[0].substring(index+1,endindex);//获取文件后缀
            String newFileName = date +"."+ endName;// 新文件名
            try {
                byte[] bytes = new BASE64Decoder().decodeBuffer(shartimg[1]);  //将字符串转换为byte数组
                inputStream1 = new ByteArrayInputStream(bytes);
                ObjectMetadata metadata = new ObjectMetadata();
                metadata.setContentLength(inputStream1.available());                       oss.putObject(GlobalConfig.bucket,GlobalConfig.packagename+"/"+newFileName, inputStream1, metadata);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String shareImg ="https://"+GlobalConfig.bucket+".oss-cn-beijing.aliyuncs.com/"+GlobalConfig.packagename+"/"+newFileName;
            share.setShareImg(shareImg);
            shareService.save(share);//service添加方法
            return R.ok();
        }else{
            return R.ok().put("data","数据有误");
        }
    }
GlobalConfig.java
public class GlobalConfig {
    public final static String domain  = "http://oss-cn-beijing.aliyuncs.com";//endpoint
    public final static String bucket = "bucketName";//上传的bucket名
    public final static String packagename = "manager";//图片所在文件夹名
    public final static String AccessKeyID = "";//id
    public final static String AccessKeySecret = "";//密码
}
共同成长,共同学习。
 

Base64格式上传文件至阿里云(java)的更多相关文章

  1. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  2. 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手

    关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手   本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...

  3. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

  4. vue + elementUi + upLoadIamge组件 上传文件到阿里云oss

    <template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...

  5. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  6. Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request

    我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 o ...

  7. 使用axios上传文件到阿里云对象文件存储服务器oss

    背景 OSS可用于图片.音视频.日志等海量文件的存储.各种终端设备.Web网站程序.移动应用可以直接向OSS写入或读取数据.OSS支持流式写入和文件写入两种方式.使用阿里云oss做文件存储的时候,不可 ...

  8. 上传文件到阿里云linux服务器

    在“运行”中输入cmd,打开控制台,切换到刚才Putty的安装目录下,我的是E:\Putty,然后输入pscp命令,我们需要这个命令来实现文件的上传.如下图所示,命令格式为: pscp D:\recy ...

  9. PHP上传文件到阿里云OSS,nginx代理访问

    1. 阿里云OSS创建存储空间Bucket(读写权限为:公共读) 2. 拿到相关配置 accessKeyId:********* accessKeySecret:********* endpoint: ...

随机推荐

  1. python之字典及其方法---整理集

    字典 特点: 使用逗号分隔的key:value形式: 使用大括号括起来: key-value的键值对中,value部分可以是任意类型: 列表.字典不能做为字典的key: 字典是无序的,哪个key-va ...

  2. openstack swift curl 常用操作

    上传文件 curl -v -X PUT -H 'X-Auth-Token: AUTH_tkd9276f23b3404c67b8a6be45da881d6e' http://127.0.0.1:8080 ...

  3. Python学习笔记4基本数据类型

    start:16:00 1.Python基本数据类型 (1)数字类型及其操作 整数类型 浮点数类型 浮点数间运算存在不确定尾数,不是bug 复数类型 数值运算操作符 (2)数值运算函数    . 2. ...

  4. c#: .net framework 2.0支持扩展方法的办法

    c#之扩展方法是个好方法,可惜只在.net framework 3.5及以上版本中用. 2.0版本若用,其编译报错如下: 错误 无法定义新的扩展方法,因为找不到编译器所需的类型“System.Runt ...

  5. 迁移virtualenv环境

    记录一次将window上的virtualenv部署至LINUX服务器 前提 你已经使用virtualenv创建了一个虚拟的python运行环境,并且已经完成了你的应用的开发,现在需要将工程部署到服务器 ...

  6. Python2和3版本对str和bytes类型的处理

    python2中字符串分为2种类型: 字节类型:str,字节类型,通过decode()转化为unicode类型 unicode类型:unicode ,通过encode转化为str字节类型 字节类型 和 ...

  7. docker-2 tomcat

    启动容器命令 docker run -d -p 8080:8080 -v /root/tomcat/webapps:/usr/local/tomcat/webapps -v /root/tomcat/ ...

  8. MySQL函数转储存(当前月数据同步)

    BEGIN declare a1 int default 0;#第一次循环的循环变量 declare a2 int default 0; declare b1 int default 0; decla ...

  9. UVa156

    #include <bits/stdc++.h> using namespace std; map<string,int> cnt; vector<string> ...

  10. 记一次Struts2 内核问题分析解决

    问题场景描述 生产环境某个处理耗时比较长的接口,吞吐能力极差.客服反馈此功能长期处于毫无响应状态. 具体表现 系统启动后第一次调用耗时极慢,长时间不响应.紧随之后发起的请求也同时没有响应. 等待第一次 ...