Laravel 5.2 使用ckeditor 及 ckfinder

19 篇文章 0 订阅
2 篇文章 0 订阅

上一篇已经说过如何让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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值