摘要:中文名叫文件管理器,也叫文件瀏覽器,它給我們提供了一個可視化的界面來管理文件和文件夾。利用,我們可以對文件進(jìn)行瀏覽增加打印修改文件屬性重命名搜索等等一大堆非常有用的操作。相信朋友們都非常熟悉了,它是一種富文本編輯器,不再贅述。
FileManager中文名叫文件管理器,也叫文件瀏覽器,它給我們提供了一個可視化的界面來管理文件和文件夾。利用FileManager,我們可以對文件進(jìn)行瀏覽、增加、打印、修改(文件屬性)、重命名、搜索等等一大堆非常有用的操作。
CKeditor相信朋友們都非常熟悉了,它是一種富文本編輯器,不再贅述。
現(xiàn)在我們來演示如何將FileManager和CKeditor整合到laravel中去。
將filemanager加入到composer.json中我們用bestmomo/filemanager
require : { "laravel/framework": "5.2.*", "bestmomo/filemanager": "1.1.*" }Update Composer
$ composer update
更新完成后,將service provider加入到config/app.php中
/** * App/Config/App.php */ BestmomoFilemanagerFilemanagerServiceProvider::class,發(fā)布
$ php artisan vendor:publish --provider="BestmomoFilemanagerFilemanagerServiceProvider"在User模型中添加2個權(quán)限方法
/** * App/Http/Models/User.php */ /** * Check media all access * * @return bool */ public function accessMediasAll(){ return $this->role->slug == "admin"; } /** * Check media access one folder * * @return bool */ public function accessMediasFolder() { return $this->role->slug != "user"; }添加路由與方法
模型配置完了,就需要添加路由和控制器的方法了
路由// route.php Route::get("medias", ["as"=>"medias", "uses"=>"AdminAdminController@filemanager"]);配置文件
新建配置文件medias.php來配置引入的filemanager目錄
// Config/medias.php "filemanager/index.html", "url-files" =>"/public/filemanager/userfiles/" ];方法
在控制器AdminController中我們添加filemanager方法
/** * Show the media panel * * @return Response */ public function filemanager(){ $url = config("medias.url") . "?langCode=" . config("app.locale"); return view("backend.filemanager")->with(compact("url")); }filemanager.blade.php模板
@extends("backend.layout.master") @section("head") @stop @section("main") @include("backend.partials.entete", ["heading" => trans("backend/medias.dashboard"), "operation"=>"", "symbol" => "file-image-o", "superior" => trans("backend/medias.medias")])@stop
到了這里,整個FileManager就整合到了laravel中,但我在實際運行中,報了一個小錯誤:
call_user_func_array() expects parameter 1 to be a valid callback, class "KbwebsMultiAuthGuard" does not have a method "accessMediasAll"
說是"KbwebsMultiAuthGuard"沒有accessMediasAll方法。
原因是我在laravel5.1中做了多用戶驗證功能,安裝了"KbwebsMultiAuthGuard"插件,所以在所有要獲取User模型的時候都要加上一個user(), 比如 Auth::user->user(), auth()->user()->user()
找到有accessMediaAll和accessMediasFolder的文件/filemanager/connectors/php/default.config.php
* @copyright Authors */ // Laravel init require getcwd() . "/../../../../bootstrap/autoload.php"; $app = require_once getcwd() . "/../../../../bootstrap/app.php"; $kernel = $app->make("IlluminateContractsHttpKernel"); $response = $kernel->handle( $request = IlluminateHttpRequest::capture() ); $id = $app["encrypter"]->decrypt($_COOKIE[$app["config"]["session.cookie"]]); $app["session"]->driver()->setId($id); $app["session"]->driver()->start(); // Folder path $folderPath = config("filemanager.folder_path"); // Check if user in authentified if(!$app["auth"]->check()) { $laravelAuth = false; } else { //print_r($app["auth"]->user()->user()->accessMediasAll());exit; // Check if user has all access if($app["auth"]->user()->accessMediasAll()) { $laravelAuth = true; } elseif(method_exists($app["auth"]->user(), "accessMediasFolder")) { // Check if user has access to one folder if($app["auth"]->user()->accessMediasFolder()) { // Folder name with user id $folderPath .= "user" . $app["auth"]->id(); $laravelAuth = true; } else { $laravelAuth = false; } } else { $laravelAuth = false; } }
分別將
$app["auth"]->user()->accessMediasAll()
$app["auth"]->user()
$app["auth"]->user()->accessMediasFolder()
$app["auth"]->id()
改為
$app["auth"]->user()->user()->accessMediasAll()
$app["auth"]->user()->user()
$app["auth"]->user()->user()->accessMediasFolder()
$app["auth"]->user()->id()
上面的代碼更新完成后,已經(jīng)可以看到FileManager的文件管理界面
下載CKeditor并解壓到public文件夾后,在頁面中引入ckeditor/ckeditor.js
CKEDITOR.replace( "summary"); config["height"] = 400; CKEDITOR.replace( "content");
如果要實現(xiàn)ckeditor從FileManager中導(dǎo)入文件,則需要修改filebrowserBrowseUrl選項
var config = { filebrowserBrowseUrl : "/filemanager/index.html" } CKEDITOR.replace( "summary", config); config["height"] = 400; CKEDITOR.replace( "content", config);
ckeditor上傳圖片的效果圖
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22642.html
首先是下載CKEditor,下載地址:http://ckeditor.com/download 選擇里面的Customize自定義,如圖 showImg(https://segmentfault.com/img/bVRlFy?w=1406&h=858); 然后進(jìn)入配置界面,第一個choose preset一般就選standard標(biāo)準(zhǔn)的 第二個需要添加兩個東西進(jìn)去 第一個是Justify showI...
首先是下載CKEditor,下載地址:http://ckeditor.com/download 選擇里面的Customize自定義,如圖 showImg(https://segmentfault.com/img/bVRlFy?w=1406&h=858); 然后進(jìn)入配置界面,第一個choose preset一般就選standard標(biāo)準(zhǔn)的 第二個需要添加兩個東西進(jìn)去 第一個是Justify showI...
Dispose 和 Finalize 是運行的 .NET 和 .NET Core 應(yīng)用程序釋放占用的資源的兩種方法。通常,如果應(yīng)用程序中有非托管資源,應(yīng)該顯式地釋放這些資源占用的資源。由于 Finalize 的非確定性,以及在性能方面的成本很高,因此 Dispose 方法的使用頻率遠(yuǎn)高于 Finalize。其實,我們可以在一個實現(xiàn)了 IDisposable 接口的類型上使用 Dispose 方法。...
摘要:現(xiàn)在我們的博客已經(jīng)具有評論功能了。處理請求處理其他請求僅接受請求。前面寫視圖的時候,二級評論提交成功后會返回,回調(diào)函數(shù)接收到這個信號后,就會調(diào)用方法,刷新當(dāng)前的父頁面即文章所在的頁面,實現(xiàn)了數(shù)據(jù)的更新。 現(xiàn)在我們的博客已經(jīng)具有評論功能了。隨著文章的評論者越來越多,有的時候評論者之間也需要交流,甚至部分評論還能合并成一個小的整體。因此最好是有某種方法可以將相關(guān)的評論聚集到一起,這時候多級...
閱讀 3896·2021-09-23 11:51
閱讀 3073·2021-09-22 15:59
閱讀 873·2021-09-09 11:37
閱讀 2074·2021-09-08 09:45
閱讀 1269·2019-08-30 15:54
閱讀 2070·2019-08-30 15:53
閱讀 495·2019-08-29 12:12
閱讀 3293·2019-08-29 11:15