




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第詳解PHP使用OSS上傳文件目錄一、安裝阿里云osssdk二、使用1、獲取OSSAccessKeyId、AccessKeySecret2、簡易上傳Html處理3、控制器處理OssImageController.php4、service層處理OssImageService.php5、oss實例及參數獲取封裝AliOss.php6、結果是可以上傳成功三、問題說明
一、安裝阿里云osssdk
在網站根目錄執行下面命令,安裝osssdk。
composerrequirealiyuncs/oss-sdk-php
安裝后,會在網站根目錄/vendor下找到一個名為`aliyuncs`的文件夾。
注:[阿里云oss-sdk文檔(可不用關注)](/document_detail/32099.html"官方oss-sdk文檔")
二、使用
1、獲取OSSAccessKeyId、AccessKeySecret
如果沒有這兩個數據可以參考/m_nanle_xiaobudiu/article/details/101756805。
2、簡易上傳Html處理
upload.html
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
title小卜丟個人站-oss圖片上傳/title
/head
body
formaction="oss-image/upload-image.json"method="post"enctype="multipart/form-data"
labelfor="file"文件名:/label
inputtype="file"name="image"id="file"br
inputtype="submit"name="submit"value="提交"
/form
/body
/html
3、控制器處理OssImageController.php
直接將請求發送到service,不用關注此層
declare(strict_types=1);
namespaceapp\controllers;
useapp\services\OssImageService;
classOssImageControllerextendsBaseController
*oss上傳圖片
*@returnstring
*@throws\OSS\Core\OssException
publicfunctionactionUploadImage()
return$this-response(OssImageService::service()-uploadImage());
}
4、service層處理OssImageService.php
PHP處理在此層,關注此層即可
declare(strict_types=1);
namespaceapp\services;
useapp\extensions\AliOss;
classOssImageServiceextendsBaseService
*oss上傳圖片
*@returnarray
*@throws\OSS\Core\OssException
publicfunctionuploadImage()
$ossClient=AliOss::getOssClient();
$bucketName=AliOss::getBucketName();
//文件名
$fileName=$_FILES['image']['name'];
//臨時文件位置
$tmpFile=$_FILES['image']['tmp_name'];
//定義文件存儲的oss位置
$ossPath='test/'.date('Y-m-d').'/'.date('Hi').mt_rand(10000,99999);
//定義ossobject
$object=$ossPath.'.'.$this-getExtension($fileName);
//執行上傳并獲取返回oss信息
$info=$ossClient-uploadFile($bucketName,$object,$tmpFile);
$ossUrl=$info['oss-request-url'];
//如果圖片的協議是http,則轉換成https
if(substr($ossUrl,0,4)=='http'){
$ossUrl=substr_replace($ossUrl,'https',0,4);
$data=[
'file_url'=$ossUrl,
'file_name'=basename($ossUrl)
return$data;
*返回文件擴展名
*@param$fileName
*@returnmixed
privatefunctiongetExtension($fileName)
returnpathinfo($fileName)['extension'];
}
5、oss實例及參數獲取封裝AliOss.php
declare(strict_types=1);
namespaceapp\extensions;
useOSS\OssClient;
useOSS\Core\OssException;
*阿里云oss文件上傳
classAliOss
constendpoint='';
constaccessKeyId='LSDFskkdDDSSdkfg';
constaccessKeySecret='LT9cG3JkGKffRPalgk4n33lk8Ll41d';
constbucket='hk-server';
*根據Config配置,得到一個OssClient實例
*@returnOssClient一個OssClient實例
publicstaticfunctiongetOssClient()
try{
$ossClient=newOssClient(self::accessKeyId,self::accessKeySecret,self::endpoint,false);
}catch(OssException$e){
printf(__FUNCTION__."creatingOssClientinstance:FAILED\n");
printf($e-getMessage()."\n");
returnnull;
return$ossClient;
publicstaticfunctiongetBucketName()
returnself::bucket;
}
6、結果是可以上傳成功
返回圖片在oss中的完整訪問url的
status:1,
msg:"success",
data:{
file_url:"/test/2025-08-22/211753008.jpg",
file_name:"211753008.jpg"
}
這時,我們訪問/test/2025-08-22/211753008.jpg就可以正常獲取到圖片了,并且在oss管理控制臺也是可以找到上傳的文件的。
這只是將文件上傳到oss上,并將文件的url返給前端,但還沒有將文件的信息存在本地。這里建議前端接收到該url后,連同文件的其他數據(比如分類、文件名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝飾材料陳列與視覺營銷考核試卷
- 自然遺跡保護與生態農業技術考核試卷
- 竹類生物質資源高值化利用與采集考核試卷
- 貨運火車站物流信息技術發展趨勢與前沿技術考核試卷
- 計量檢測在公共衛生監測的應用考核試卷
- 幼兒園大班禮儀教育課程
- 期刊出版與學術期刊的學術期刊數字化進展考核試卷
- 2025年垃圾分揀裝備項目發展計劃
- 銀行科技運維安全動畫
- 2019-2025年一級建造師之一建市政公用工程實務通關考試題庫帶答案解析
- 公司員工手冊(完整版)
- 2025屆南寧二中、柳州高中高考物理二模試卷含解析
- GB/T 44500-2024新能源汽車運行安全性能檢驗規程
- 《體育科學研究方法》題庫
- 2.6.2數列求和公開課一等獎課件省賽課獲獎課件
- 公司道德和商業行為準則
- 【年產1000噸富硒沙棘果汁工藝生產設計16000字(論文)】
- 2024年湖南高二學業水平合格性考試英語試卷試題(含答案詳解)
- 汽車維修合作協議書范本
- HG-T 4062-2023 波形擋邊輸送帶
- 中等職業學校信息技術課程標準(2020年版)(文本精排版)
評論
0/150
提交評論