ThinkPHP5.0使用七牛云上传图片
ThinkPHP
2018-10-14 16:05:39
在thinkphp5框架中,正确配置和使用七牛sdk,成功的将文件或图片上传至七牛空间中,并获得图片的信息!
前提就不多说了,起码在七牛官网上得到自己的AK,SK,bucket等信息;
七牛云AK,SK,bucket的获取方法为:
1、注册个七牛云账户
2、点击个人中心》密钥管理
3、创建密钥,即可获得对应的AK、SK
4、bucket的获取为:点击对象存储》新建存储空间。创建的空间名即为bucket。
到这里,你已经获取了对应的数据信息。接下来,就是在thinkphp中进行代码的处理。
第一步:配置
把在七牛云官网下载的php-sdk整个文件夹拷贝到thinkphp5的extend目录下,并将php-sdk改名为Qiniu
config配置文件中添加AK,SK,bucket等信息
'ACCESSKEY' => '*************',//你的accessKey 'SECRETKEY' => '*************',//你的secretKey 'BUCKET' => '**********',//上传的空间 'DOMAIN'=>'http://images.zyglz.com/'//空间绑定的域名
注:这里的DOMAIN为你绑定的空间域名,如果你是第一次注册,那么七牛云会提供一个测试域名(该域名的有效期为30天)。
后期需要你更换成自己的域名,关于自己域名添加为,在测试域名下方点击自定义域名,按照 对应步骤即可获得自定义长期使用的域名。
第二步:控制器
use Qiniu\Auth as Auth; use Qiniu\Storage\BucketManager; use Qiniu\Storage\UploadManager;
第三步:方法
/** * 图片上传,ajax返回 * 七牛云存储图片 * @author */ public function qiniu_upload(){ // if(request()->isPost()){ $file = request()->file('file'); // 要上传图片的本地路径 $filePath = $file->getRealPath(); $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //后缀 //获取当前控制器名称 // $controllerName=$this->getContro(); // 上传到七牛后保存的文件名 $key =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext; require_once APP_PATH . '/../vendor/qiniu/autoload.php'; // 需要填写你的 Access Key 和 Secret Key $accessKey = config('ACCESSKEY'); $secretKey = config('SECRETKEY'); // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 要上传的空间 $bucket = config('BUCKET'); $domain = config('DOMAINImage'); $token = $auth->uploadToken($bucket); // 初始化 UploadManager 对象并进行文件的上传 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); if ($err !== null) { return ["err"=>1,"msg"=>$err,"data"=>""]; } else { //返回图片的完整URL return json(["err"=>0,"msg"=>"上传完成","data"=>$ret]); } // } }
以上便是完整代码,亲测有效!此时你到你的七牛云账户的对应空间,即可看到你上传的图片数据。
六月初字帖坊小程序
你想要的字帖模板及工具,这里都有!
880篇文章
2883人已阅读