-
在項目根目錄 用
composer
下載oss-sdk-php
composer require aliyuncs/oss-sdk-php
參考:https://help.aliyun.com/document_detail/85580.html -
在
config
文件裏配置賬戶信息
return [
'oss' =>[
'accessKeyId'=>$accessKeyId,
'accessKeySecret'=>$accessKeySecret,
'bucket' => $bucket,
'endPoint' => $endPoint,
'domain' => $domain,
'oss_dir' => [
'img' => $oss_type.'/'.$oss_qd.'/img/'
]
]
];
- 創建
Aliyunoss
擴展類
<?php
namespace app\lib\aliyun;
use OSS\OssClient;
use think\Config;
class Aliyunoss
{
public static $oss;
public function __construct()
{
$accessKeyId = Config::get('oss.accessKeyId'); //獲取阿里雲oss的accessKeyId
$accessKeySecret = Config::get('oss.accessKeySecret'); //獲取阿里雲oss的accessKeySecret
$endpoint = Config::get('oss.endPoint'); //獲取阿里雲oss的endPoint
self::$oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //實例化OssClient對象
}
/**
* 使用阿里雲oss上傳文件
* @param $object 保存到阿里雲oss的文件名
* @param $filepath 文件在本地的絕對路徑
* @return bool 上傳是否成功
*/
public function upload($object, $filepath)
{
$bucket = Config::get('oss.bucket'); //獲取阿里雲oss的bucket
return self::$oss->uploadFile($bucket, $object, $filepath);
}
/**
* 使用阿里雲oss上傳字符串
*/
public function putStr($object, $content)
{
$bucket = Config::get('oss.bucket'); //獲取阿里雲oss的bucket
return self::$oss->putObject($bucket, $object, $content);
}
/**
* 刪除指定文件
* @param $object 被刪除的文件名
* @return bool 刪除是否成功
*/
public function delete($object)
{
$res = false;
$bucket = Config::get('oss.bucket'); //獲取阿里雲oss的bucket
if (self::$oss->deleteObject($bucket, $object)){ //調用deleteObject方法把服務器文件上傳到阿里雲oss
$res = true;
}
return $res;
}
public function test(){
echo "success";
}
}
- 在
controller
方法裏調用
public function upload()
{
$path = Config::get('oss.oss_dir');
$name = date('YmdHis',time()).'.png';
//1.獲取上傳文件信息
$upfile = $_FILES["png"];
//2.上傳到阿里雲oss
$ali = new Aliyunoss();
$oss_result = $ali->upload($path.$name,$upfile["tmp_name"]);
dump($oss_result);
}