本文主要是介绍百度云对象存储BOS上传文件(tp5.1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、下载
两种下载方式
- composer require baidubce/bce-sdk-php 虽然使用简单直接use就行,但是不推荐了,因为包好久没更新了
- 官网SDK(推荐方式) 下载链接
二、使用步骤
1.配置
- 解压下载好的文件放在tp框架根目录下的extend
- 相应的控制器引入
require_once '../extend/BaiduBce.phar';
use BaiduBce\Services\Bos\BosClient;
use BaiduBce\Services\Bos\CannedAcl;
- 配置文件设置
$BOS_TEST_CONFIG=config('baidubce.');$client =new BosClient($BOS_TEST_CONFIG);//var_dump($client);die;$bucketName = 'xxxxx';//bucket名字,相当于你在bucket创建好的那个文件夹,如果没有会自动创建。$exist = $client->doesBucketExist($bucketName);if(!$exist){$client->createBucket($bucketName);}$client->setBucketCannedAcl($bucketName, CannedAcl::ACL_PUBLIC_READ);//设置Bucket权限
其中的配置TP5框架config目录下新建相应的配置文件 我这边创建的是Baidubce
对应的配置写进去
<?php
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | 百度云Bos对象存储服务
// +----------------------------------------------------------------------return ['credentials'=>['accessKeyId' =>"xxxxxxxx",'secretAccessKey'=>'xxxxxxxx'],'endpoint' => 'https://bj.bcebos.com',];
控制台中的BOS服务获取对应的accessKeyId和secretAccessKey
2.调用
废话不多说了,直接上代码吧:$file = $this->request->file('file');
if(empty($file)){//上传验证
}else{//上传验证$info = $file->move('uploads');if($info){$BOS_TEST_CONFIG=config('baidubce.');$client =new BosClient($BOS_TEST_CONFIG);$bucketName = 'test';//bucket名字 唯一$client->setBucketCannedAcl($bucketName, CannedAcl::ACL_PUBLIC_READ);//设置Bucket权限$name_path =str_replace('\\',"/",$info->getSaveName());//文件存储的路径$client->putObjectFromFile($bucketName,$name_path,"uploads/".$name_path);//上传$bos_url = $client->generatePreSignedUrl($bucketName,$name_path);//上传文件的地址$url = "uploads/".$info->getSaveName();//文件本地目录$ext = $info->getExtension();//文件后缀$path ="uploads".DIRECTORY_SEPARATOR.substr($info->getSaveName(),0,strpos($info->getSaveName(),DIRECTORY_SEPARATOR));//对应所在的文件夹unset($info);//如果不释放这个变量下面的unlink()函数会报错。if (file_exists($url)) {unlink($url);//删除本地文件rmdir($path);//删除对应的空文件夹}
总结
这里对文章进行总结:
以上就是百度云和tp框架的上传文件了,有需要的小伙伴结合自己的需求进行修改,比如我上面是没有放存储在数据库中和一些返回参数的相关的代码的,最后百度云BOS对象存储服务文档:
链接
这篇关于百度云对象存储BOS上传文件(tp5.1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!