关于thinkphp集成OSS总结(本地上传)
来源:互联网 发布:网络唤醒数据包 编辑:程序博客网 时间:2024/06/18 16:21
1.安装 :demo下载路径:https://help.aliyun.com/document_detail/32099.html。
2.配置: 在Application/Common/Conf/config.php内进行相关参数配置。
'ALIOSS_CONFIG' => array( 'KEY_ID' => '', // 阿里云oss key_id 'KEY_SECRET' => '', // 阿里云oss key_secret 'END_POINT' => '', // 阿里云oss endpoint 'BUCKET' => '' // bucken 名称)
3. 建立ImgUpController.class.php 控制器上传文件。
/** 文件上传 * @param $file * @return string */ public function upload($file) { $_FILES = $file; $upload = new \Think\Upload();// 实例化上传类 // $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg',"mp4","wmv");// 设置附件上传类型 $upload->rootPath = './Uploads/'; // 设置附件上传根目录 $upload->savePath = ''; // 设置附件上传(子)目录 // 上传文件 $info = $upload->upload(); if (!$info) {// 上传错误提示错误信息 $m = $upload->getError(); $msg = array('code' => '0', 'info' => $m); } else {// 上传成功 $url = ''; foreach ($info as $key => $value) { $url2 = $upload->rootPath; $url2 .= $value['savepath']; $url2 .= $value['savename']; $url2 .= ','; $url .= substr($url2, 1); } $url = rtrim($url, ','); return $url; } }
4.建立OssUpController.class.php控制器. 注意:头部需引入:
use OSS\OssClient;use OSS\Core\OssException;
/** * OSS 上传图片 * @param $info 本地图片路径 eg: /Uploads/2017-09-20/59c1e7418e8e4.jpg * @return string 完整访问路径 */ public function OssUp($info){ if(!$info) {// 上传错误提示错误信息 return -2;//处理上传错误信息 }else {// 上传成功 vendor('Alioss.autoload'); $accessKeyId = C('ALIOSS_CONFIG.KEY_ID'); $accessKeySecret = C('ALIOSS_CONFIG.KEY_SECRET'); $endpoint = C('ALIOSS_CONFIG.END_POINT'); $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint); $bucket = C('ALIOSS_CONFIG.BUCKET'); $object = trim($info,'/');//想要保存文件的名称 $file = '.'.$info;//文件路径,必须是本地的。 try { $getOssInfo = $ossClient->uploadFile($bucket, $object, $file); unlink($file); return $this->get_url($info);//上传成功,自己编码 } catch (OssException $e) { return $e->getMessage();//上传失败,自己编码 } } } /** * 获取完整网络连接 * @param string $path 文件路径 * @return string http连接 */ function get_url($path){ // 如果是空;返回空 if (empty($path)) { return ''; } // 如果已经有http直接返回 if (strpos($path, 'http://')!==false) { return $path; } // 获取bucket $bucket= C('ALIOSS_CONFIG.BUCKET'); return 'http://'.$bucket.'.'.C('ALIOSS_CONFIG.END_POINT').$path; }
5.先调用步骤3获取文件路径,再调用 步骤4内的 OssUp 方法即可。(备注:步参数为本地文件路径)。
阅读全文
0 0
- 关于thinkphp集成OSS总结(本地上传)
- 对象存储oss集成到thinkPHP,将图片上传到oss里面
- 阿里云OSS上传thinkphp
- 阿里OSS上传总结
- thinkphp集成系列之阿里云oss
- kindeditor集成thinkphp上传浏览
- ThinkPHP 文件上传到阿里云OSS上
- ThinkPHP上传文件总结
- thinkPHP实现对象存储oss,将图片上传到阿里云oss
- Thinkphp 文件上传方法总结
- 【OSS】OSS的Multipart上传
- **关于阿里云oss图片批量上传问题解析**
- 关于阿里云OSS上传以及下载的处理方法
- 关于百度ueditor图片上传到OSS问题解决
- 在thinkphp中使用阿里云OSS自定义驱动上传文件
- ThinkPHP中整合阿里OSS
- thinkphp OSS服务器签名直传
- 关于ThinkPHP学习总结-1
- 多线程自旋锁
- python语言学习——对yield函数的理解
- 【jQuery】使用jQuery.Actual.js插件获取隐藏元素的高和宽
- 【编译原理】第四章作业(2)
- maven打包
- 关于thinkphp集成OSS总结(本地上传)
- 一周二次课(10月17日)
- 互联网金融
- Android Socket通信详解
- 战场,紫书P175UVa11853
- 从键盘输入20个数a1到a20,计算并输出b1到b10,b1=根号(a1*a1+a20*a20),...,b10=根号(a10*a10+a11*a11)
- Lintcode 680. split string(分割字符串)(更改后)
- 项目中自动读取properties文件
- C++虚函数机制解析