阿里對象存儲OSS在laravel框架中的使用方法
最近比較忙,也沒來得及寫博客。加上最近也確實沒有接觸到什么新技術(shù),有點尷尬。。。
在昨天算是第一次接觸對象存儲這個東西,研究了一天,算是在項目中走得通了,所以在此分享給大家,是最基礎(chǔ)的OSS上傳圖片部分,希望能自己以后能少踩坑,也希望能幫助到大家。
首先呢,現(xiàn)在百度出來的,基本都是laravel大神自己封裝的composer包,可惜我實在是不能用,所以只能老老實實的在項目中引入SDK了。。。
1、引入阿里的SDK文件
如圖所示,其實我也不知道該放哪里合適,不過laravel的好處是命名空間比較好使,所以我直接把SDK重命名為OSS,然后目錄路徑為:App\Helpers\OSS
2、就是修改命名空間,主要是你能用得上的文件,大概有7-8個,把命名空間都定義好
3、修改配置文件,config.php,這個是SDK中的配置文件,需要把相應(yīng)的配置寫清楚
(坑:endpoint這個部分,前面一定不要加你的bucket,不然就重復(fù)了。。。例如,我的endpoint是
'oss-cn-shanghai.aliyuncs.com' )
4、都配置的差不多了,接下來就是上傳文件了
public static function uploadOne($filename) { $file = \Illuminate\Support\Facades\Request::file($filename); if (!$file) { exit("請上傳圖片"); } // 文件是否上傳成功 if ($file->isValid()) { // 獲取文件相關(guān)信息 $originalName = $file->getClientOriginalName(); // 文件原名 $ext = $file->getClientOriginalExtension(); // 擴展名 $realPath = $file->getRealPath(); //臨時文件的絕對路徑 $type = $file->getClientMimeType(); // image/jpeg $content = date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $ext; require_once(base_path() . '/app/Helpers/Oss/autoload.php'); $bucket = Config::OSS_TEST_BUCKET; $accessKeyId = Config::OSS_ACCESS_ID; $accessKeySecret = Config::OSS_ACCESS_KEY; $endpoint = Config::OSS_ENDPOINT; $ossClient = Common::getOssClient(); /*var_dump($ossClient); exit;*/ $object = "user/" . $content; $filePath = $file; $result = $ossClient->UploadFile($bucket, $object, $filePath); if (!$result) { exit("上傳圖片失敗"); } return $content; } }
上代碼,主要從require_once開始的,引入SDK的加載文件,然后把各項配置通過config引入進(jìn)來。
$object是你要存儲的文件。比如樓主這里,就是相當(dāng)于存儲在bucket下的user文件下。然后通過
$filePath = $file來獲得圖片的內(nèi)容,使用UploadFile方法進(jìn)行上傳。然后看返回值,成功即可。
5、遇到的坑:首先是SDK中的autoload.php一直報錯,
function classLoader($class) { $path = str_replace('\\', DIRECTORY_SEPARATOR, $class); $file = __DIR__ . DIRECTORY_SEPARATOR .'src'. DIRECTORY_SEPARATOR . $path . '.php'; if (file_exists($file)) { require_once $file; } } /*spl_autoload_register('classLoader');*/
像這樣的,我就直接注釋了,也沒什么后果,不過在后面可能會用得上吧,需要繼續(xù)研究
其次就是上傳的時候遇到的小問題了,這個根據(jù)錯誤提示修改即可,一般來說按我的走,能實現(xiàn)基本的上傳圖片,如果是上傳文件的話,直接修改上傳方法:$ossClient->putobj()就可以了
總結(jié):我這個只是最基礎(chǔ)的后臺上傳。未來做APP上傳的時候,肯定是需要ajax先獲取一個加密碼,然后再url中加上這個加密碼進(jìn)行識別,,還有就是圖片的刪除等問題,仍需研究。。。以后如果研究好了,就再分享給大家。
以上這篇阿里對象存儲OSS在laravel框架中的使用方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Laravel中使用阿里云OSS Composer包分享
- Laravel框架中實現(xiàn)使用阿里云ACE緩存服務(wù)
- Laravel中擴展Memcached緩存驅(qū)動實現(xiàn)使用阿里云OCS緩存
- Laravel框架實現(xiàn)發(fā)送短信驗證功能代碼
- 使用 laravel sms 構(gòu)建短信驗證碼發(fā)送校驗功能
- laravel中短信發(fā)送驗證碼的實現(xiàn)方法
- Laravel實現(xiàn)短信注冊的示例代碼
- 用Laravel Sms實現(xiàn)laravel短信驗證碼的發(fā)送的實現(xiàn)
- 在 Laravel 中 “規(guī)范” 的開發(fā)短信驗證碼發(fā)送功能
- laravel框架使用阿里云短信發(fā)送消息操作示例
相關(guān)文章
php提取身份證號碼中的生日日期以及驗證是否為成年人的函數(shù)
本篇文章使用php技術(shù)提取身份證號碼中的生日日期來判斷是否是未成年人的一個函數(shù)。下面小編把代碼分享給大家,供大家參考2015-09-09Thinkphp 5.0實現(xiàn)微信企業(yè)付款到零錢
這篇文章主要為大家詳細(xì)介紹了Thinkphp 5.0實現(xiàn)微信企業(yè)付款到零錢,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09laravel實現(xiàn)上傳圖片的兩種方式小結(jié)
今天小編就為大家分享一篇laravel實現(xiàn)上傳圖片的兩種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10ThinkPHP的cookie和session沖突造成Cookie不能使用的解決方法
這篇文章主要介紹了ThinkPHP的cookie和session沖突造成Cookie不能使用的解決方法,需要的朋友可以參考下2014-07-07首頁四格,首頁五格For6.0(GBK)(UTF-8)[12種組合][9-18][版主安裝測試通過]
首頁四格,首頁五格For6.0(GBK)(UTF-8)[12種組合][9-18][版主安裝測試通過]...2007-09-09