Laravel 5.2 使用ckeditor 及 ckfinder

来源:互联网 发布:游戏源码 编辑:程序博客网 时间:2024/06/16 00:16

上一篇已经说过如何让ckeditor能上传图片。

这篇讲下如何使用ckfiner来做文件浏览及管理。

1,下载finder。解压到/public。

我的目录是这样: /public/finder/3.3.0/ ........


2,修改页面文件,加载ckfinder 。

引入js

<script type="text/javascript" src="{{asset('/ckeditor/4.5.7/ckeditor.js')}}"></script><script type="text/javascript" src="{{asset('/ckfinder/3.3.0/ckfinder.js')}}"></script>


配置ckeditor 和 ckfinder

var content = CKEDITOR.replace( 'content',                    {                        language: 'zh-cn',                        height: 450,                        filebrowserBrowseUrl : '/ckfinder/3.3.0/ckfinder.html',                        filebrowserImageBrowseUrl : '/ckfinder/3.3.0/ckfinder.html?type=Images',                        filebrowserFlashBrowseUrl : '/ckfinder/3.3.0/ckfinder.html?type=Flash',                        filebrowserImageUploadUrl : '{{url('admin/images')}}?_token={{csrf_token()}}',                    });            CKFinder.setupCKEditor( content );

这里要注意下三个BrowerUrl的地址。只要这样写,ckfinder就已经可以工作了。并且在ckeditor里,已经打开“浏览服务器”的按钮。

最后一个UploadUrl跟上一篇的上传相同。


这一句 

CKFinder.setupCKEditor( content );

不写也能工作,但是文档上说要写就写吧。可能要用到高级功能就会知道不写的后果了。


3,修改ckfinder 下的config.php文件。

这里只要把

$config['authentication'] = function () {    return false;};
这里的false改成true就行了。

文档里说只是简单的改成true会有安全上的问题。

那么,还需要在文件头上加上laravel的一些东西,让它能够认证下。比如登录用户才能访问等等。


代码如下:

require __DIR__.'/../../../bootstrap/autoload.php';$app = require_once __DIR__.'/../../../bootstrap/app.php';$app->make('Illuminate\Contracts\Http\Kernel')->handle(Illuminate\Http\Request::capture());function CheckAuthentication(){    return Auth::check();}

加入以上代码之后,把return true 改成 return CheckAuthentication(); 

这样的话经过认证之后会安全一些。

这里有个问题。虽然文件浏览不会有问题。可是在ckfinder里就无法上传文件了。因为在某一个环节上,这里的认证并没有起作用,它没有返回true。


目前没时间调试这个问题,先直接返回true吧。所以这里laravel的内容可以不加。


4,上传文件 的保存目录。

'baseUrl'      => '/upload/userfiles/',
ckfinder中上传的文件会被保存到 /publid/upload/userfiles/images/ 当中。

这里的images是ckfinder自己加的。 应该可以去掉,我懒就由着它去吧。


这里的上传目录,和单独的上传功能的目录,可以根据项目 需要设在一起,或是不设在一起。



问题:

1,在ckeditor的单独上传功能中,没有办法使用

 

filebrowserFlashUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'

这样的地址。会提示404错误。因为路由里没有嘛。

这个问题网上没找着答案。高手都不屑于告诉我这个问题如何解决。


这个问题已经解决,是我地址写错了。

正确,完整的是这样:

var content = CKEDITOR.replace( 'content',        {            language: 'zh-cn',            height: 450,            filebrowserBrowseUrl : '/ckfinder/3.3.0/ckfinder.html',            filebrowserImageBrowseUrl : '/ckfinder/3.3.0/ckfinder.html?type=Images',            filebrowserFlashBrowseUrl : '/ckfinder/3.3.0/ckfinder.html?type=Flash',            filebrowserUploadUrl : '/ckfinder/3.3.0/core/connector/php/connector.php?command=QuickUpload&type=Files',            filebrowserImageUploadUrl : '/ckfinder/3.3.0/core/connector/php/connector.php?command=QuickUpload&type=Images',            filebrowserFlashUploadUrl : '/ckfinder/3.3.0/core/connector/php/connector.php?command=QuickUpload&type=Flash'        });CKFinder.setupCKEditor( content );
一行php代码都不用写,除了那个验证的要研究下。



==========================================================================================


修改一下:配置完ckfinder的“浏览服务器”,可以把上传文件的UploadUrl这段删了。因为这时已经配置好文件上传了。都不需要自己单独去写上传。

只不过,它用的是files的上传,即保存到“files”目录。而不是“images”目录。


filebrowserImageUploadUrl : '{{url('admin/images')}}?_token={{csrf_token()}}',
这个删掉!!!





0 0
原创粉丝点击