TP5實現阿里雲oss上傳

  1. 在項目根目錄 用composer下載oss-sdk-php
    composer require aliyuncs/oss-sdk-php
    參考:https://help.aliyun.com/document_detail/85580.html

  2. config文件裏配置賬戶信息

return [
        'oss' =>[
            'accessKeyId'=>$accessKeyId,
            'accessKeySecret'=>$accessKeySecret,
            'bucket' => $bucket,
            'endPoint' => $endPoint,
            'domain' => $domain,
            'oss_dir' => [
                'img' => $oss_type.'/'.$oss_qd.'/img/'
            ]
        ]
    ];
  1. 創建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";
    }
}

  1. 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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章