基於PHP後臺上傳圖片到阿里雲

第一步:先下載PHP SDK包放到根目錄的Vendor下。SDK下載地址:https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c63.p38356.a3.2.3b8d7557Adllch
在這裏插入圖片描述
第二步:登錄阿里雲,創建bucket,地址:https://oss.console.aliyun.com/bucket
Bucket 是存儲桶的意思,用來存儲文件用的。名字可以自定,跟騰訊雲的命名有所不同。
在這裏插入圖片描述
注意:讀寫權限要設置成公有讀私有寫,上圖紅框所示。否則會出錯的。

 /**
     * 阿里雲圖片上傳
     * @param $local_path   本地文件或臨時文件路徑
     * @param $aliyunImg    阿里雲路徑
     * @param $ext          圖片後綴
     * @return |null
     */
    public function uploadAliyun($local_path,$aliyunImg,$ext)
    {
        include_once $_SERVER['DOCUMENT_ROOT']."/vendor/aliyun-oss-php-sdk-master/autoload.php";

        $accessKeyId = 'LTAI4G27kVGxTdtw1ovvATE5';
        $accessKeySecret = '9HPp1wHOBQGzjnAqRfTz2VfiQxAv2t';
        $endpoint = 'oss-cn-shenzhen.aliyuncs.com';
        $bucket = 'hanlusir-shop';

        try {
            $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
            $result = $ossClient->uploadFile($bucket, $aliyunImg, $local_path,['Content-Type'=>'image/'.$ext]);
            return $result['info']['url'];
        } catch (\Exception $e) {
            echo $e->getMessage();
            return null;
        }

    }

第二個參數阿里雲路徑可以寫成帶目錄結構的,如果目錄不存在的話,阿里雲會自動創建目錄。

使用示例:

$local_path = $param['files']['tmp_name'];
$ext = pathinfo($param['files']['name'],PATHINFO_EXTENSION);
$aliyunImg = $param['savePath'].$param['saveName'] . '.' . $ext;
$r = $this->uploadAliyun($local_path,$aliyunImg,$ext);

注意:如果你上傳的文件是下載而不是直接預覽的話,那麼設置就是有問題的。
可以參考本人另外一篇文章:
解決:打開阿里雲圖片顯示下載,而不是直接預覽的問題 https://blog.csdn.net/weixin_42433970/article/details/106430563

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章