PHP技术论坛
标题: Thinkphp的OSS存储上传类库案例 [打印本页]
作者: admin 时间: 2016-3-5 14:13
标题: Thinkphp的OSS存储上传类库案例
thinkphp版本:3.1.2
oss版本:PHP SDK V2 开发包
将 PHP SDK V2 开发包 放入 /ThinkPHP/Extend下
[size=14.5437px][attach]22[/attach]
在控制器加载调用
- date_default_timezone_set('Asia/Shanghai');
- Vendor('aliyun.aliyun');
- use AliyunOSSOSSClient;
复制代码
[size=14.5437px][attach]23[/attach]
方法中调用(上传图片)
- $client = OSSClient::factory(array(
- 'AccessKeyId' => 'xxxxxxxx',
- 'AccessKeySecret' => 'xxxxxxxxx',
- ));
- $client->putObject(array(
- 'Bucket' => '自取的名字',
- 'Key' => $new_name,
- 'Content' => fopen($big_image_info['tmp_name'], 'r'),
- 'ContentLength' => filesize($big_image_info['tmp_name']),
- ));
复制代码 创建Bucket
- date_default_timezone_set('Asia/Shanghai');
- require_once './aliyun/aliyun.php';
- use AliyunOSSOSSClient;
- $client = OSSClient::factory(array(
- 'AccessKeyId' => '填上自己的Access Key ID',
- 'AccessKeySecret' => '填上自己的Access Key Secret',
- ));
- // var_dump($client);exit;
- /*创建Bucket start*/
- //注意:可以会提示 “该Bucket已存在或被其他用户占用” 而导致报错、
- $client->createBucket(array(
- 'Bucket' => 'test666zzz',
- ));
- /*创建Bucket end*/
复制代码 上传Object
- date_default_timezone_set('Asia/Shanghai');
- require_once './aliyun/aliyun.php';
- use AliyunOSSOSSClient;
- $client = OSSClient::factory(array(
- 'AccessKeyId' => '填上自己的Access Key ID',
- 'AccessKeySecret' => '填上自己的Access Key Secret',
- ));
- // var_dump($client);exit;
-
- /*上传Object start*/
- // $client->putObject(array(
- // 'Bucket' => 'test666zzz',
- // 'Key' => 'test',
- // 'Content' => 'This is my content',
- // ));
- //注意:Content 为Object的实际内容,它可以为字符串或者是资源类型(resource),当 Content 类型为resource时,你必须指定Object的大小(以字节为单位)。
- $client->putObject(array(
- 'Bucket' => 'test666zzz',
- 'Key' => 'test2',
- 'Content' => fopen('www.phperblog.cn.txt', 'r'),
- 'ContentLength' => filesize('www.phperblog.cn.txt'),
- ));
- /*上传Object end*/
复制代码
获取object列表
- date_default_timezone_set('Asia/Shanghai');
- require_once './aliyun/aliyun.php';
- use AliyunOSSOSSClient;
- $client = OSSClient::factory(array(
-
- 'AccessKeyId' => '填上自己的Access Key ID',
- 'AccessKeySecret' => '填上自己的Access Key Secret',
- ));
- // var_dump($client);exit;
- /*获取Object列表 start*/
- $objectListing = $client->listObjects(array(
- 'Bucket' => 'test666zzz',
- ));
- foreach ($objectListing->getObjectSummarys() as $objectSummary) {
- echo $objectSummary->getKey();
- }
- /*获取Object列表 end*/
复制代码 下载Object
- date_default_timezone_set('Asia/Shanghai');
- require_once './aliyun/aliyun.php';
- use AliyunOSSOSSClient;
- $client = OSSClient::factory(array(
-
- 'AccessKeyId' => '填上自己的Access Key ID',
- 'AccessKeySecret' => '填上自己的Access Key Secret',
-
- ));
- // var_dump($client);exit;
- /*下载Object start*/
- // $object = $client->getObject(array(
- // 'Bucket' => 'test666zzz',
- // 'Key' => 'test2',
- // ));
- //echo (string)$object;
- //下面为文件的具体详细信息
- $object = $client->getObject(array(
- 'Bucket' => 'test666zzz',
- 'Key' => 'test2',
- ));
- echo "Key: " . $object->getKey() . "";
- echo "Update Date: " . $object->getLastModified()->getTimestamp() . "";
- echo "Content: ";
- echo stream_get_contents($object->getObjectContent()); // Print object's content.
- /*下载Object end*/
复制代码
全部代码(控制器)
[backcolor=rgb(188, 188, 188) !important]
- /**
- *
- * @author LiZeQiao <[email]674531003@qq.com[/email]>
- * @version v1.0.0
- * @description
- */
- date_default_timezone_set('Asia/Shanghai');
- Vendor('aliyun.aliyun');
- use AliyunOSSOSSClient;
-
- class TestAction extends CommonAction{
- public function index(){
-
- $this->display();
- }
- public function do_test(){
- //.获取要上传文件的信息
- $big_image_info= $_FILES['big_image'];
-
- $typelist=array("image/gif","image/jpeg","image/jpg","image/png"); //定义运行的上传文件类型
-
- /*获取后缀名 start*/
- $hc_big=explode('.',$big_image_info['name']);
- $big_aaa=$hc_big['1'];
- /*获取后缀名 end*/
- //.判断文件是否上传错误
- if($big_image_info['error'] <= 0){
- //.判断文件上传的类型是否合法
- if(in_array($big_image_info['type'],$typelist)){
- //.上传文件的大小过滤
- if($big_image_info['size']<9000000){
- //.上传文件名处理
- $new_name = time().'.'.$big_aaa;
- //。判断是否是上传的文件,并执行上传
- if(is_uploaded_file($big_image_info['tmp_name'])){
-
- $client = OSSClient::factory(array(
- 'AccessKeyId' => 'xxxxxxx',
- 'AccessKeySecret' => 'xxxxxxxx',
- ));
- $client->putObject(array(
- 'Bucket' => '自取的名称',
- 'Key' => $new_name,
- 'Content' => fopen($big_image_info['tmp_name'], 'r'),
- 'ContentLength' => filesize($big_image_info['tmp_name']),
- ));
- }else{
- $error = "图片文件不是上传的文件";
- return;
- }
- }else{
- $error = "图片太大";
- return;
- }
- }else{
- $error = "图片文件类型错误";
-
- return;
- }
- }else{
- $error = "图片文件上传错误";
-
- return;
- }
- $new_name='http://'.'自取的名称'.'.oss-cn-hangzhou.aliyuncs.com/'.$new_name;
- var_dump($new_name);
- }
- }
复制代码
[attach]24[/attach]
[attach]25[/attach]
欢迎光临 PHP技术论坛 (http://php.hh85.com/) |
Powered by Discuz! X3.2 |