




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第詳解PHP使用OSS上傳文件目錄一、安裝阿里云osssdk二、使用1、獲取OSSAccessKeyId、AccessKeySecret2、簡(jiǎn)易上傳Html處理3、控制器處理OssImageController.php4、service層處理OssImageService.php5、oss實(shí)例及參數(shù)獲取封裝AliOss.php6、結(jié)果是可以上傳成功三、問題說明
一、安裝阿里云osssdk
在網(wǎng)站根目錄執(zhí)行下面命令,安裝osssdk。
composerrequirealiyuncs/oss-sdk-php
安裝后,會(huì)在網(wǎng)站根目錄/vendor下找到一個(gè)名為`aliyuncs`的文件夾。
注:[阿里云oss-sdk文檔(可不用關(guān)注)](/document_detail/32099.html"官方oss-sdk文檔")
二、使用
1、獲取OSSAccessKeyId、AccessKeySecret
如果沒有這兩個(gè)數(shù)據(jù)可以參考/m_nanle_xiaobudiu/article/details/101756805。
2、簡(jiǎn)易上傳Html處理
upload.html
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
title小卜丟個(gè)人站-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
直接將請(qǐng)求發(fā)送到service,不用關(guān)注此層
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處理在此層,關(guān)注此層即可
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'];
//臨時(shí)文件位置
$tmpFile=$_FILES['image']['tmp_name'];
//定義文件存儲(chǔ)的oss位置
$ossPath='test/'.date('Y-m-d').'/'.date('Hi').mt_rand(10000,99999);
//定義ossobject
$object=$ossPath.'.'.$this-getExtension($fileName);
//執(zhí)行上傳并獲取返回oss信息
$info=$ossClient-uploadFile($bucketName,$object,$tmpFile);
$ossUrl=$info['oss-request-url'];
//如果圖片的協(xié)議是http,則轉(zhuǎn)換成https
if(substr($ossUrl,0,4)=='http'){
$ossUrl=substr_replace($ossUrl,'https',0,4);
$data=[
'file_url'=$ossUrl,
'file_name'=basename($ossUrl)
return$data;
*返回文件擴(kuò)展名
*@param$fileName
*@returnmixed
privatefunctiongetExtension($fileName)
returnpathinfo($fileName)['extension'];
}
5、oss實(shí)例及參數(shù)獲取封裝AliOss.php
declare(strict_types=1);
namespaceapp\extensions;
useOSS\OssClient;
useOSS\Core\OssException;
*阿里云oss文件上傳
classAliOss
constendpoint='';
constaccessKeyId='LSDFskkdDDSSdkfg';
constaccessKeySecret='LT9cG3JkGKffRPalgk4n33lk8Ll41d';
constbucket='hk-server';
*根據(jù)Config配置,得到一個(gè)OssClient實(shí)例
*@returnOssClient一個(gè)OssClient實(shí)例
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、結(jié)果是可以上傳成功
返回圖片在oss中的完整訪問url的
status:1,
msg:"success",
data:{
file_url:"/test/2025-08-22/211753008.jpg",
file_name:"211753008.jpg"
}
這時(shí),我們?cè)L問/test/2025-08-22/211753008.jpg就可以正常獲取到圖片了,并且在oss管理控制臺(tái)也是可以找到上傳的文件的。
這只是將文件上傳到oss上,并將文件的url返給前端,但還沒有將文件的信息存在本地。這里建議前端接收到該url后,連同文件的其他數(shù)據(jù)(比如分類、文件名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年虛擬現(xiàn)實(shí)教育產(chǎn)品在科學(xué)實(shí)驗(yàn)教學(xué)中的應(yīng)用與創(chuàng)新報(bào)告
- 紡織染整技術(shù)考核試題及答案
- 飯店雇傭合同協(xié)議書
- 途家公寓托管合同協(xié)議
- 仁懷合同協(xié)議書
- 水庫(kù)值班協(xié)議書
- 工廠廢品買賣合同協(xié)議書
- 超市股份協(xié)議書模板
- 運(yùn)營(yíng)權(quán)變更協(xié)議書模板
- 遺囑轉(zhuǎn)讓合同協(xié)議版
- 醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理制度和工作程序目錄
- 《火災(zāi)事故案例培訓(xùn)》課件
- 蒸汽管道試運(yùn)行方案
- 2024高考物理一輪復(fù)習(xí)第66講分子動(dòng)理論內(nèi)能(練習(xí))(學(xué)生版+解析)
- 帶您走進(jìn)西藏學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 公司員工手冊(cè)(完整版)
- GB/T 44500-2024新能源汽車運(yùn)行安全性能檢驗(yàn)規(guī)程
- 《體育科學(xué)研究方法》題庫(kù)
- 2024年滬教版六年級(jí)下冊(cè)數(shù)學(xué)期末測(cè)試卷及答案1套
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考道德與法治試卷(5年真題+答案解析)
- 2024年湖南高二學(xué)業(yè)水平合格性考試英語試卷試題(含答案詳解)
評(píng)論
0/150
提交評(píng)論