PHP實現圖片上傳至阿里雲OSS
阿新 • • 發佈:2019-01-08
今天博主在實現一個頭像上傳功能,需要將圖片上傳至阿里雲的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,如果覺得不錯,請麻煩點贊,支援下博主~
更多文章請關注微信公眾號