实际开发中,我们不可能把所有的图片,视频和附件等,都放在和站点同一个服务器上,因为这会占用我们大量的服务器带宽和资源
我们一般去对接各种云服务商的对象存储,例如腾讯云,阿里云,又拍云,七牛云等,将我们的大文件上传到这些云的对象存储上,可以节省很大一部分服务器流量开支,而且对象存储的带宽也要比服务器大的多,用户体验也很好

腾讯云对象存储对接demo

这里引入了腾讯云对象存储的sdk,文末有完整demo包

<?php  
//获取文件后缀名
$suffix_name = strrchr($_FILES['file']['name'],'.');
//生成随机文件名
$rand_num = md5(time().rand(0,10));
//拼接成完整的 腾讯云对象存储的路径  根目录起
$img_path = "/images/".date('Y')."/".date('n')."/".$rand_num.$suffix_name;
//引入腾讯云对象存储sdkv5版本
require('cos-php-sdk-v5/index.php');
use Qcloud\Cos\Api;
//设置参数
$config = [
    //地区,这里是sh代表上海
    'region' => 'sh',
    'credentials'=> 
        [
            'appId' => '你的appid',//appid
            'secretId' => '你的secretId',//secretId
            'secretKey' => '你的secretKey'//secretKey
        ]
];
$cosClient = new Qcloud\Cos\Client($config);

$data = [
    'Bucket' => '你的bucket',//bucket
    'Key' => $img_path,//上传到腾讯云对象存储的路径和文件名
    'Body' => fopen($_FILES['file']['tmp_name'],'rb'),//打开文件
    'ServerSideEncryption' => 'AES256'
];
$result = $cosClient->putObject($data);
echo json_encode(['status'=>1,'res'=>$str],JSON_UNESCAPED_UNICODE);

完整demo包下载(含SDK)

最后修改:2019 年 07 月 06 日 05 : 01 PM
如果觉得我的文章对你有用,请随意赞赏