ThinkPHP 文件上传到阿里云OSS上(干货)
2017-01-17 11:40
549 查看
参考:http://www.thinkphp.cn/extend/789.html
项目实例,,我是这样处理的。。
第一步:下载:https://github.com/aliyun/aliyun-oss-php-sdk/releases
核心文件:
放到ThinkPHP\Library\Vendor\下,新建文件aliyun。
第二步,配置文件:config.php..这个不能出错。。。
第三步:要引用的控制器下引用:use OSS\Core\OssException;
如:
第四步。。测试,,OK。。。
1、前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-php-sdk/releases。 这里介绍源码部署:Source code下载下来。.phar其实就是一个打包文件,直接引用后就能用,大家自己去试试吧,功能是一样的。 2、将下载下来的压缩包解压后放到项目ThinkPHP\Library\Vendor\aliyun路径下。aliyun文件夹是我自己建的,大家可以自己命名。 3、在控制器中编写代码: 控制器中要加入 use OSS\Core\OssException;//不然OssException 报错 配合upload上传类(图片为例) $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = './Public/uploads/'; // 设置附件上传根目录 $upload->savePath = ''; // 设置附件上传(子)目录 $upload->saveName = array('uniqid',''); // 上传文件 $info = $upload->upload(); if(!$info) {// 上传错误提示错误信息 //处理上传错误信息 }else{// 上传成功 vendor('aliyun.autoload'); $accessKeyId = "";//去阿里云后台获取秘钥 $accessKeySecret = "";//去阿里云后台获取秘钥 $endpoint = "";//你的阿里云OSS地址 $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint); $bucket= "";//oss中的文件上传空间 $object = date('Y-m-d').'/'.$info['imgfile']['savename'];//想要保存文件的名称 $file = './Public/uploads/'.$info['imgfile']['savepath'].$info['imgfile']['savename'];//文件路径,必须是本地的。 try{ $ossClient->uploadFile($bucket,$object,$file); //上传成功,自己编码 //这里可以删除上传到本地的文件。unlink($file); } catch(OssException $e) { //上传失败,自己编码 printf($e->getMessage() . "\n"); return; } }
项目实例,,我是这样处理的。。
第一步:下载:https://github.com/aliyun/aliyun-oss-php-sdk/releases
核心文件:
放到ThinkPHP\Library\Vendor\下,新建文件aliyun。
第二步,配置文件:config.php..这个不能出错。。。
//阿里云OSS文件上传配置 'accessKeyId' => 'XXXX',//去阿里云后台获取秘钥 'accessKeySecret' => 'yyyy',//去阿里云后台获取秘钥 'endpoint' => 'zzzz',//你的阿里云OSS地址 'bucket' => 'wwwwww',//oss中的文件上传空间
第三步:要引用的控制器下引用:use OSS\Core\OssException;
如:
if ($_FILES['plan_name']['size'] < 204800000 && in_array($type['extension'], array('pdf'))) { if ($a = uploadImage($_FILES[plan_name], $this->admin[id] . '_' . $t)) { $_POST[plan_name] = $this->admin[id] . '_' . $t; } // 2016-1-12 添加开始 $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 314572800 ;// 设置附件上传大小 $upload->exts = array('pdf','PDF');// 设置附件上传类型 $upload->rootPath = './Application/Public/upload/'; // 设置附件上传根目录 $upload->savePath = 'fqlc/'; $info = $upload->upload(); $getOssPdfUrl = ''; if($info){ vendor('aliyun.autoload'); $ossClient = new \OSS\OssClient(C('accessKeyId'),C('accessKeySecret'),C('endpoint')); $object = date('Y-m-d').'/'.$info['plan_name']['savename'];//想要保存文件的名称 $file = $upload->rootPath.$info['plan_name']['savepath'].$info['plan_name']['savename'];//文件路径,必须是本地的。 try{ $getOssInfo = $ossClient->uploadFile(C('bucket'),$object,$file); $getOssPdfUrl = $getOssInfo['info']['url']; if($getOssPdfUrl){ unlink($file); // rmdir($upload->rootPath.$upload->savePath,0777); } }catch(OssException $e){ printf($e->getMessage() . "\n"); return; } } // 2016-1-12 添加结束 } }
第四步。。测试,,OK。。。
相关文章推荐
- ThinkPHP 文件上传到阿里云OSS上
- 在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程
- ThinkPHP3.2 实现阿里云OSS上传文件
- 在thinkphp中使用阿里云OSS自定义驱动上传文件
- 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
- 阿里云OSS通过URL上传文件
- thinkPHP实现对象存储oss,将图片上传到阿里云oss
- 最新阿里云OSS文件上传部署
- 上传指定url文件到阿里云oss
- 阿里云 oss JavaScript客户端签名文件上传 vue2.0
- 阿里云 oss服务器文件上传 java
- 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手
- OSS阿里云上传文件
- Android阿里云OSS多文件同步上传和删除方案
- 阿里云oss post上传文件 JavaScript代码示例 $.ajax()
- 阿里云存储OSS golang语言上传文件示例。
- 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
- 阿里云对象存储OSS--实现随时随地上传文件到阿里云
- Spring整合阿里云OSS服务实现文件上传