base64格式的图片上传阿里云

上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的。

后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成临时的图片文件,上传后删除即可)

   /**
* @param $imgBase64 获取图片base64字符串
* return String '返回阿里云上的图片路径
*/
public function uploadUserImg($imgBase64,$workno,$realName)
{
// 图片上传测试
$bucketName = getLinkageNameByCode('OSS_CONFIG','BUCKET_NAME'); // 存储空间名称
$accessId = getLinkageNameByCode('OSS_CONFIG','ACCESS_ID');
$accessKey = getLinkageNameByCode('OSS_CONFIG','ACCESS_KEY');
$endpoInt = getLinkageNameByCode('OSS_CONFIG','ENDPOINT'); // OSS数据中心访问域名
if (preg_match('/^(data:\s*image\/(\w+);base64,)/',$imgBase64,$res)) {
//获取图片类型
$type = $res[2];
//图片名字
$fileName = time().'.'.$type;
// 临时文件
$tmpfname = tempnam("/tmp/", "FOO");
$handle = fopen($tmpfname, "w");
if (fwrite($handle,base64_decode(str_replace($res[1],'', $imgBase64)))){
$res = OssUtil::FileUpload($accessId,$accessKey,$endpoInt,$bucketName,'avator/'.$workno.'/'.$realName.'/'.$fileName,$tmpfname);
fclose($handle);
unlink($tmpfname);
return $res['info']['url'];
}
}
}
 /**
* 用于上传文件
* @param $ACCESS_ID string OSS获得的AccessKeyId
* @param $ACCESS_KEY string OSS获得的AccessKeySecret
* @param $ENDPOINT string OSS数据中心的访问域名
* @param $bucket_name string 存储空间名称
* @param $object string 文件名称
* @param $filePath string 由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt
* @return null|void
*/
function FileUpload($ACCESS_ID,$ACCESS_KEY,$ENDPOINT,$bucket_name,$object,$filePath){
try{
$ossClient = new OssClient($ACCESS_ID, $ACCESS_KEY, $ENDPOINT);
$getReturn = $ossClient->uploadFile($bucket_name, $object, $filePath);
} catch(OssException $e) {
\Think\Log::record(__FUNCTION__ . ": upload FAILED\n", 'INFO');
\Think\Log::record("upload FAILED : ".$e->getMessage() . "\n", 'INFO');
return $e->getMessage();
}
return $getReturn;
}

base64格式的图片上传阿里云的更多相关文章

  1. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  2. 百度editor调用【图片上传阿里云】

    百度editor调用简单,但是图片和文件上传阿里云就有点难度了.下面我详细说一下. 百度富文本编辑器下载地址:http://ueditor.baidu.com/website/download.htm ...

  3. 如何把base64格式的图片上传到到阿里云oss c#版

    今天碰到需要把canvas上的的图片转存到阿里云oss,于是百度了半天,一个能打的答案都没有.怒了,自己搞起. 代码超级简单,需要先引入nuget 中啊里云的oss api 1 byte[] arr ...

  4. 小程序--->小程序图片上传阿里OSS使用方法

    小程序图片上传阿里OSS使用方法 首先看下参考文档 ( http://blog.csdn.net/qq_38125123/article/details/73870667) 这里只将一些运用过程中遇到 ...

  5. 关于数据上传阿里云MaxCompute调研

    1.背景 当前的数据存储基于mysql库表存储形式,目前已经无法满足愈加增大的数据存储需求,新项目基于Maxcompute数据仓库架构,需要将统计日志上传Maxcompute,本文对Maxcomput ...

  6. PHP批量保存图片到服务器再上传阿里云

    /* * 批量传输产品主图到阿里云 */ public function transferImage(){ $num = 50; $p = isset($this->request->ge ...

  7. Fit项目图片上传和云存储的调通

    项目中关于动作的说明需要相应的配图,这样可以更直观的说明动作要点.本篇主要为项目中动作的新增和编辑做准备,确定适合场景的上传操作逻辑以及图片的存储和加载的方法. 一 上传方案 a) 本来所用的模板中是 ...

  8. js base64 转成图片上传

    直接上代码,要点就是把base64转成Blob,添加到FormData传递给后台程序,跟选择图片文件上传时一样的了. var dataurl = canvas.toDataURL('image/png ...

  9. alpine制作jdk、jre镜像、自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

随机推荐

  1. jchdl - GSL实例 - Shifter

    https://mp.weixin.qq.com/s/ngQji-xi4FCCbL_2ihUi_A   Shifter是移位节点的父类,定义了输入输出线,但是没有定义具体的移位方式,这个留给子类去实现 ...

  2. ActiveMQ 笔记(八)高级特性和大厂常考重点

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.可用性保证 引入消息队列之后该如何保证其高可用性? 持久化.事务.签收. 以及带复制的 Leavel ...

  3. Cpusets学习

    1. cpusets 1.1 什么是cpusets cpusets基本功能是限制某一组进程只运行在某些cpu和内存节点上,举个简单例子:系统中有4个进程,4个内存节点,4个cpu.利用cpuset可以 ...

  4. Java实现 LeetCode 785 判断二分图(分析题)

    785. 判断二分图 给定一个无向图graph,当这个图为二分图时返回true. 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我 ...

  5. Java实现 LeetCode 654 最大二叉树(递归)

    654. 最大二叉树 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左子树是通过数组中最大值左边部分构造出的最大二叉树. 右子树是通过数组中最 ...

  6. Java实现 LeetCode 232 用栈实现队列

    232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部. pop() – 从队列首部移除元素. peek() – 返回队列首部的元素. empty() – 返 ...

  7. Java实现 LeetCode 216. 组合总和 III(三)

    216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. ...

  8. Java实现 LeetCode 108 将有序数组转换为二叉搜索树

    108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: ...

  9. Java实现 蓝桥杯 算法提高 成绩排名

    试题 算法提高 成绩排名 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你, ...

  10. Java实现填写乘法算式

    观察下面的算式: * * × * * = * * * 它表示:两个两位数字相乘,结果是3位数.其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0.当然,满足这个要求的算式 ...