1. 程式人生 > >PHP實現圖片上傳至阿里雲OSS

PHP實現圖片上傳至阿里雲OSS

       今天博主在實現一個頭像上傳功能,需要將圖片上傳至阿里雲的OSS,所以也是百度、谷歌了一番,但都不是很管用,所以自己研究了一番,並將上傳的方法封裝成一個類進行呼叫,下面向大家分享這個過程,在這之前先下載阿里雲OSS的SDK

       下面先封裝我們的上傳類,命名為AliYunUpload,程式碼如下:

USE OSS\OssClient;
USE OSS\Core\OssException;

require "OssUpload/autoload.php";

class AliYunUpload
{

    /**
     * 上傳圖片
     * @param $dst
     * @param $getFile
     * @return mixed
     */
    function uploadImage($dst, $getFile)
    {
      #配置OSS基本配置
      $config = array(
            'KeyId' => '你的KeyId',
            'KeySecret' => '你的KeySecret',
            'Endpoint' => '你的Endpoint',
            'Bucket' => '上傳的Bucket',
      );
      $ossClient = new OssClient(
        $config['KeyId'], 
        $config['KeySecret'], 
        $config['Endpoint']);
      #執行阿里雲上傳
      $result = $ossClient->uploadFile(
        $config['Bucket'], 
        $dst, 
        $getFile);
      #返回
      return $result;
    }
}

       封裝完我們的上傳類,然後便可以寫我們的上傳介面了,程式碼如下:

require '../comm/AliYunUpload.php';

#獲取上傳檔案資訊
$getFile = $_FILES['file']['tmp_name'];
#上傳檔案字尾
$ext = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], '.')
 + 1);
#重新命名檔案上傳名字
$dst = 'files/' . md5(time()) . '.' . $ext;
#執行阿里雲上傳
$aliyun = new AliYunUpload();
$url = $aliyun->uploadImage($dst, $getFile);
#根據顯示返回資訊
$json = json_encode(array(
    'code' => 200,
    'data' => $dst,
    'error' => ''
));
echo($json);

       這樣,我們便完成了我們的介面封裝,下面我們再寫一個簡單的HTML,進行呼叫,程式碼如下:

<html>
<head>
<meta charset="utf-8">
<title>上傳圖片</title>
</head>
<body>
<div style="width: 100%; height: 100%;">
<form action="介面地址" method="post" enctype="multipart/form-data">
    <label for="file">檔名:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="提交">
</form>
</div>
</body>

        這樣我們便成功的實現了PHP上傳圖片至阿里雲OSS,如果覺得不錯,請麻煩點贊,支援下博主~

        更多文章請關注微信公眾號