摘要:圖片上傳,以用戶(hù)頭像為例為節(jié)省本地磁盤(pán),依托七牛的節(jié)點(diǎn)加快訪問(wèn),從而選擇七牛的對(duì)象存儲(chǔ)來(lái)保存下述,以流程概述為主據(jù)遇到的實(shí)際問(wèn)題和需求來(lái)展開(kāi)僅列出關(guān)鍵代碼。
圖片上傳,以用戶(hù)頭像avatar為例
為節(jié)省本地磁盤(pán),依托七牛的CDN節(jié)點(diǎn)加快訪問(wèn),從而選擇七牛的對(duì)象存儲(chǔ)來(lái)保存avatar. 下述,以流程概述為主,據(jù)遇到的實(shí)際問(wèn)題和需求來(lái)展開(kāi),僅列出關(guān)鍵代碼。
技術(shù)基礎(chǔ)
Laravel5.4.36+webuploader(異步上傳) //筆者環(huán)境如此
延伸
,也可在composer.lock中查看
普通上傳的實(shí)現(xiàn)public function webUpload(Request $request){ //1.是否有文件上傳及上傳文件的有效性判斷(file,是webUploader插件用來(lái)接收文件的) if ($request->hasFile("file") && $request->file("file")->isValid()) { $newFileName = md5($request->file("file")->getClientOriginalName() . time()) . "." . $request->file("file")->getClientOriginalExtension(); //2.保存到該磁盤(pán)(為啥?通過(guò)檢查/storage目錄的.gitignore,了解到該目錄下的文件才能被提交;且在軟鏈接的配置后可直接訪問(wèn)) //文件名重復(fù)就會(huì)覆蓋=>因此要回到上一步=>自定義文件名 $newFileName Storage::disk("public")->put($newFileName, File::get($request->file("file")->path()));//Storage門(mén)面確認(rèn)存儲(chǔ)位置,File門(mén)面獲取文件全部?jī)?nèi)容 //3.返回結(jié)果 return [ //laravel中會(huì)自動(dòng)處理,返回成json數(shù)據(jù) "code" => 1, "message" => "文件上傳成功", //4.返回的必須是/public下可直接訪問(wèn)的圖片地址. //因laravel中站點(diǎn)是直接指向/public的,因此圖片也要在/public下才可以(而如前所設(shè),圖片被保存在了/storage/app/public) //=>此時(shí)可通過(guò)軟鏈接配置來(lái)達(dá)到快捷訪問(wèn)的效果 "path" => "/storage/" . $newFileName ]; } return [ "code" => 0, "message" => $request->file("file")->getErrorMessage(), ]; }
簡(jiǎn)要說(shuō)明
軟鏈接配置
php artisan storage:link
命令參考及最后效果
普通上傳代碼中,提及的圖片保存的實(shí)際路徑
如上步驟,既已實(shí)現(xiàn)本地磁盤(pán)的存儲(chǔ),那么七牛上傳就不在話(huà)下了.只不過(guò)是換了個(gè)保存圖片的地址而已.
七牛上傳的實(shí)現(xiàn)1.如上所述,已實(shí)現(xiàn)了avatar的普通上傳。七牛上傳,則在該代碼基礎(chǔ)上來(lái)修改. 2.用七牛=>注冊(cè)七牛=>選擇并新建對(duì)象存儲(chǔ)空間=>從而得到[空間名字和測(cè)試域名]
官網(wǎng) https://www.qiniu.com/
圖示一:新建
圖示二:查詢(xún)
3.借助第三方集成的SDk來(lái)處理上傳
https://github.com/zgldh/qini...
4.修改普通上傳的代碼,有兩處:
存儲(chǔ)位置
Storage::disk("qiniu")->put($newFileName, File::get($request->file("file")->path()));
返回圖片地址
"path" => Storage::disk("qiniu")->getDriver()->downloadUrl($newFileName), //這里要返回的是七牛云存儲(chǔ)的圖片的路徑(第三方提供的文檔中查找可用方法)
5.響應(yīng)數(shù)據(jù)的檢查
6.html中一并提交該圖片的返回地址到DB,那么DB中就可查看到相關(guān)信息了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25945.html
摘要:在中注冊(cè)發(fā)布之后,我們會(huì)產(chǎn)生一個(gè)監(jiān)聽(tīng)器,文件已經(jīng)存儲(chǔ)在本地,獲取該文件信息將文件上傳至七牛云存入數(shù)據(jù)庫(kù)上面的部分代碼沒(méi)寫(xiě),大家可以去自己去試下,加深對(duì)七牛云及的理解,完全可以達(dá)到目的。 最近項(xiàng)目用戶(hù)徒增,購(gòu)買(mǎi)的服務(wù)器還是和公司另外一個(gè)項(xiàng)目共用的同一臺(tái)服務(wù)器,想著要是服務(wù)器崩了,還沒(méi)個(gè)容災(zāi)方案,萬(wàn)一。。。不得被用戶(hù)整死 選用方案 laravel-backup 配合laravel的任務(wù)調(diào)...
摘要:行處理視圖文件名后綴。結(jié)語(yǔ)從源碼上看,使用了原始作為模版機(jī)制使得視圖邏輯非常簡(jiǎn)單。無(wú)非也就是把視圖進(jìn)來(lái),用輸出緩沖把執(zhí)行結(jié)果拿到即可。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 CI 的 View 沒(méi)有像 Laravel 等一些流行框架一樣設(shè)計(jì)的那么重,有自己的一套模版機(jī)制,CI 一直采用純天然的 PHP 模板形式,純天然的好處是不用再學(xué)習(xí)一套模板語(yǔ)言了,缺...
摘要:,在后續(xù)測(cè)試時(shí)遇到一個(gè)詭異,當(dāng)文件過(guò)大時(shí),任務(wù)腳本上傳到七牛云失敗。當(dāng)我遇到大文件無(wú)法上傳到七牛云時(shí),斷點(diǎn)調(diào)試到這里,發(fā)現(xiàn)返回的是。后來(lái)還真被我找到了,七牛云官方提供一個(gè)腳本工具。 業(yè)務(wù)場(chǎng)景 需求 我們項(xiàng)目有一個(gè)文件上傳需求,需要從客戶(hù)端上傳到七牛云的對(duì)象存儲(chǔ)和自己的應(yīng)用服務(wù)器上。這里使用七牛云主要是實(shí)現(xiàn)下載分發(fā)。應(yīng)用服務(wù)器需要留一份是因?yàn)楹罄m(xù)需要做文件分析(并且是上傳后需要立馬分析出...
摘要:為什么使用對(duì)象存儲(chǔ)對(duì)象存儲(chǔ)是云服務(wù)提供商面向企業(yè)和個(gè)人開(kāi)發(fā)者提供的高可用,高穩(wěn)定,強(qiáng)安全的云端存儲(chǔ)服務(wù)。什么是阿里云對(duì)象存儲(chǔ)服務(wù),簡(jiǎn)稱(chēng),是阿里云提供的海量安全低成本高可靠的云存儲(chǔ)服務(wù)。 關(guān)于作者 程序開(kāi)發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開(kāi)發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開(kāi)發(fā)。合適和夠用是永不停息的追求。 個(gè)人網(wǎng)站:https:/...
摘要:是基于封裝的在線編輯器,支持項(xiàng)目。已集成本地七牛云阿里云文件存儲(chǔ)。更新記錄完成在線編輯器主程序,且集成本地七牛阿里云存儲(chǔ)。 Laravel5-Markdown-Editor Laravel5-Markdown-Editor 是基于 editor.md 封裝的 Markdown 在線編輯器,支持 Laravel5 項(xiàng)目。已集成本地、七牛云、阿里云文件存儲(chǔ)。 更新記錄 2017-11-09...
閱讀 2345·2019-08-30 15:44
閱讀 1270·2019-08-30 13:01
閱讀 3312·2019-08-30 11:22
閱讀 3097·2019-08-29 15:23
閱讀 1620·2019-08-29 12:22
閱讀 3378·2019-08-26 13:58
閱讀 3446·2019-08-26 12:17
閱讀 3483·2019-08-26 12:16