实际开发中,我们不可能把所有的图片,视频和附件等,都放在和站点同一个服务器上,因为这会占用我们大量的服务器带宽和资源
我们一般去对接各种云服务商的对象存储,例如腾讯云,阿里云,又拍云,七牛云等,将我们的大文件上传到这些云的对象存储上,可以节省很大一部分服务器流量开支,而且对象存储的带宽也要比服务器大的多,用户体验也很好
腾讯云对象存储对接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)
版权属于:本文是原创文章,版权归 吾梦小站 所有。
本文链接:https://www.nikm.cn/archives/13.html
本站所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由地转载和修改,但请务必注明文章来源并且不可用于商业目的。