-
在项目根目录 用
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);
}