ThinkPHP 文件上传到阿里云OSS上

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;
}
}


我的

 $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728;$upload->savePath = './Public/Uploads/';
        $upload->saveName = array('uniqid','');
        $upload->exts     = array('jpg', 'gif', 'png', 'jpeg');
        $upload->autoSub  = true;
        $upload->subName  = array('date','Ymd');
        $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['file']['savename'];//想要保存文件的名称
                $file = $upload->rootPath . $info['file']['savepath'] . $info['file']['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 添加结束

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值