第一步:先下載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