wuheng1991

参考:http://www.thinkphp.cn/extend/789.html

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。。。

 

分类:

技术点:

相关文章:

  • 2021-12-28
  • 2021-12-18
  • 2021-12-18
  • 2021-05-12
  • 2021-12-14
  • 2021-11-21
猜你喜欢
  • 2021-11-21
  • 2021-11-21
  • 2021-11-21
  • 2021-12-28
  • 2021-08-15
  • 2021-11-21
相关资源
相似解决方案