第一步:下载sdk
下载地址:https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g.11186623.2.9.451233bc4YHDpk
第二步:
将下载下来的文件,重命名为:alioss,放在extend文件夹下面
第三步:
在application下配置文件config.php中添加
//阿里云资源服务器配置,里面填写你们自己的oss账号的相关信息 'aliyunOss'=>[ 'KeyId' => '', 'KeySecret' =>'', 'Endpoint' => '', 'Bucket'=> '' ]
第四步:
编写文件上传类
<?php namespace app\common\controller; use think\Controller; use think\Config; use think\Image; use OSS\OssClient; use OSS\Core\OssException; class Alioss extends Controller { /* 测试函数 public function index(){ return $this->fetch('user/index'); }*/ /** * 单文件上传 * $file = request()->file('file'); //获取到上传的文件 * @param $file * @return array|string */ public function uploadFile($file) { import('alioss.autoload',EXTEND_PATH,'.php'); $resResult = Image::open($file); // 尝试执行 try { $config = Config::get('aliyunOss'); //获取Oss的配置 //实例化对象 将配置传入 $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']); //这里是有sha1加密 生成文件名 之后连接上后缀 $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type(); //执行阿里云上传 $result = $ossClient->uploadFile($config['Bucket'], $fileName, $file->getInfo()['tmp_name']); $arr = [ 'address:' => $result['info']['url'], ]; return $arr; } catch (OssException $e) { return $e->getMessage(); } //将结果输出 dump($arr); } /** * 多图片上传 * @param $file_arr * @return array|string */ public function uploadarr($file_arr){ import('alioss.autoload',EXTEND_PATH,'.php'); foreach($file_arr as $key=>$val){ $resResult = Image::open($val); // 尝试执行 try { $config = Config::get('aliyunOss'); //获取Oss的配置 //实例化对象 将配置传入 $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']); //这里是有sha1加密 生成文件名 之后连接上后缀 $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type(); //执行阿里云上传 $result = $ossClient->uploadFile($config['Bucket'], $fileName, $val->getInfo()['tmp_name']); $arr[$key] = $result['info']['url']; } catch (OssException $e) { return $e->getMessage(); } }//endforeach return $arr; } /** * 创建goods_img 删除多图片 * @param $token */ public function rm_image($objects){ // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 import('alioss.autoload',EXTEND_PATH,'.php'); try{ $config = Config::get('aliyunOss'); //获取Oss的配置 $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']); $ossClient->deleteObjects($config['Bucket'], $objects); } catch(OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } } } 第五步:调用
$file=$this->request->file(); $user_id=$this->request->post(); $alioss = new Alioss(); $arr = $alioss->uploadFile($file['file']);
<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"> <use xlink:href="#csdnc-thumbsup"></use> </svg><span class="name">点赞</span> <span class="count">1</span> </a></li> <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true"> <use xlink:href="#icon-csdnc-Collection-G"></use> </svg><span class="name">收藏</span></a></li> <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{"mod":"1582594662_002"}"><svg class="icon" aria-hidden="true"> <use xlink:href="#icon-csdnc-fenxiang"></use> </svg>分享</a></li> <!--打赏开始--> <!--打赏结束--> <li class="tool-item tool-more"> <a> <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg> </a> <ul class="more-box"> <li class="item"><a class="article-report">文章举报</a></li> </ul> </li> </ul> </div> </div> <div class="person-messagebox"> <div class="left-message"><a href="https://blog.csdn.net/qq_27930635"> <img src="https://profile.csdnimg.cn/C/3/F/3_qq_27930635" class="avatar_pic" username="qq_27930635"> <img src="https://g.csdnimg.cn/static/user-reg-year/1x/5.png" class="user-years"> </a></div> <div class="middle-message"> <div class="title"><span class="tit"><a href="https://blog.csdn.net/qq_27930635" data-report-click="{"mod":"popu_379"}" target="_blank">echo_just_do_it</a></span> </div> <div class="text"><span>发布了28 篇原创文章</span> · <span>获赞 8</span> · <span>访问量 4万+</span></div> </div> <div class="right-message"> <a href="https://im.csdn.net/im/main.html?userName=qq_27930635" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信 </a> <a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379"}">关注</a> </div> </div> </div>