本文實(shí)例講述了Laravel框架集成UEditor編輯器的方法。分享給大家供大家參考,具體如下:
MarkDown
更為簡單,但是感覺暫時(shí)只適合程序猿ps : 其實(shí)編輯器只是一個(gè)工具,舉一反三可以用在各種代碼語言或框架中
①. 第一種是使用
composer
進(jìn)行安裝,可推薦參考文章 Laravel-u-editor,個(gè)人試過,無法上傳圖片 …②. 第二種是到
UEditor
官方下載源包自行配置(下文主要為此操作)
Public
目錄下Public
目錄下,本人只是將文件夾名字改動了一下.①. 首先在當(dāng)前頁面,需要引入 js 文件,注意類比
src
的正確引用.
!-- ueditor-mz 配置文件 --> script type="text/javascript" src="{{asset('ueditor-mz/ueditor.config.js')}}">/script> !-- 編輯器源碼文件 --> script type="text/javascript" src="{{asset('ueditor-mz/ueditor.all.js')}}">/script> !-- 實(shí)例化編輯器 --> script type="text/javascript"> var ue = UE.getEditor('ue-container'); ue.ready(function(){ ue.execCommand('serverparam', '_token', '{{ csrf_token() }}'); }); /script>
②. 在需要顯示富文本編輯器的位置,補(bǔ)充如下代碼
!-- 加載編輯器的容器 --> script id="ue-container" name="content" type="text/plain"> @php echo htmlspecialchars_decode($article['content']); @endphp /script> !-- 上述的 php 代碼是根據(jù)實(shí)際需求進(jìn)行的編寫,該處為初始化內(nèi)容的位置-->
③. 實(shí)現(xiàn)效果如下:
①. 在進(jìn)行 form
表單提交時(shí),將獲得 name="content"
所傳輸?shù)臄?shù)據(jù)寫入數(shù)據(jù)庫即可,而對應(yīng)在數(shù)據(jù)庫中存儲的數(shù)據(jù)如下所示:
②. 當(dāng)取得了上述數(shù)據(jù),若要在前端進(jìn)行顯示,需要執(zhí)行類似的轉(zhuǎn)化代碼:
echo htmlspecialchars_decode($article['content']);
其實(shí),如果只是個(gè)簡單的小網(wǎng)站或者學(xué)生的課設(shè)項(xiàng)目,無需修改,上傳的圖片會默認(rèn)放置在 Public/ueditor/php/upload/image/
目錄下
如果需要修改,可進(jìn)入php/config.json
文件,找到配置項(xiàng) "imagePathFormat"
進(jìn)行符合需求的修改,建議可以讓文件名較長一些以避免重名:
[注]:
個(gè)人初始測試發(fā)現(xiàn),文件命名時(shí)的“{rand:6}”定義無法實(shí)現(xiàn),網(wǎng)上卻沒有類似的解決方法,解決方案請參考后面的 ***【附錄】***.
如果使用了多個(gè)服務(wù)器,設(shè)置統(tǒng)一的圖片訪問前綴極有必要,可配置參數(shù)“imageUrlPrefix”,例如我的配置路徑可以為:“http://lar5Pro.com”
這樣一來,存入數(shù)據(jù)庫中的圖片路徑都會加上了此前綴.
{rand:$num}
解決
- 剛開始想到使用時(shí)間戳加文件原名稱來作為名字,但是當(dāng)有中文字符時(shí)無法上傳。
- 其實(shí)原本的ThinkPHP框架中也集成過UEditor,但是沒有這種問題,通過閱讀源碼,找到正則表達(dá)式的匹配位置
Public/ueditor-mz/php/Uploader.class.php
大概在 304 行左右,原因是rand()
取值太大可能導(dǎo)致部分環(huán)境報(bào)錯
個(gè)人覺得數(shù)字的命名不如字母好些,于是代碼替換為如下的樣子:
//TODO 替換隨機(jī)字符串 數(shù)值太大可能導(dǎo)致部分環(huán)境報(bào)錯 $randNum = rand(100000, 10000000) . rand(100000, 10000000); //也可用使用md5()或兩者的組合 $randNum = base64_encode($randNum);
【補(bǔ)充問題】(2018-02-06):
emm樓主第一種上傳不了圖片的問題我當(dāng)時(shí)也遇到過,最后發(fā)現(xiàn)是接口路徑?jīng)]配置好。在laravl-u-editor 目錄下 ueditor.config.js文件 中修改33行左右的 serverUrl,改成對應(yīng)的路徑即可。
這個(gè)問題,可以參考 相應(yīng)文章的提示,下次有機(jī)會可以嘗試一番…
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
標(biāo)簽:遼陽 韶關(guān) 昭通 涼山 十堰 九江 甘肅 梅河口
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel框架集成UEditor編輯器的方法圖文與實(shí)例詳解》,本文關(guān)鍵詞 Laravel,框架,集成,UEditor,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。