使用CKeditor上传文件

Upload files using CKeditor

本文关键字:文件 CKeditor 使用      更新时间:2023-09-26

我正在使用ckeditor,我正在尝试上传文件。这是我的代码:

    @extends('app')
@section('header')
<script type="text/javascript" src="{{url('ckeditor/ckeditor.js')}}"></script>
@endsection
@section('content')
<div class="container">
    @include('common.errors')
<div class="row">
                <div class="col-lg-12">
                            <div class="row">
                                <div class="col-lg-9">
    {!! Form::model($info, ['route' => ['infos.update', $info->id], 'method' => 'patch','files' => true]) !!}
        @include('infos.fields')
    {!! Form::close() !!}
    </div>
    </div>
    </div>
    </div>
</div>
@endsection
@section('footer')
<script type="text/javascript">
    CKEDITOR.replace('editor1',{
        filebrowserImageUploadUrl : "{{route('infos.upload')}}",
        filebrowserWindowWidth  : 800,
        filebrowserWindowHeight : 500
    });
    window.opener.CKEDITOR.tools.callFunction(CKEditorFuncNum,url);
</script>
@endsection

每当我尝试上传文件时,我得到令牌不匹配错误。表单构建器自动在主表单中添加隐藏的csrf字段,但由于ckeditor的文件上传(POST请求)通过ajax发生,它给了我这个错误。我知道我可以禁用这个错误,但当我在谷歌上搜索时,我发现禁用它是一个不好的做法。我怎样才能停止得到这个错误并上传文件?

好了,我终于让它工作了。我将csrf令牌与请求一起发送。

filebrowserImageUploadUrl : "{{route('infos.upload',['_token' => csrf_token() ])}}",

修复了下面代码的Csrf问题:

<script type="text/javascript">
CKEDITOR.replace('editor1',{
    filebrowserImageUploadUrl : "{{ url('your_url?_token='.csrf_token()) }}",
});
</script>