小编今天为大家说一下关于,laravel5.8配合ckeditor富文本的图片文件上传csrf验证,因为ckeditor富文本中filebrowserUploadUrl配置没有说可以加csrf验证参数项。所以不知从何下手,一值报419。有篇文章说可以去csrf验证,但小编觉得不安全,所以没哪样做。哪是怎么办呢?下面我来说一下我的方法。
一、配置路由:
$router->post('/file/uploadimg', 'FileController@uploadimg')->name('upfile');
二、路由对应控制器上传方法:
public function uploadimg(Request $request){
$file = request()->file('upload');
$dir = uploadadds();
$filename = $this->uploadFile($file, $dir);
if($filename){
$previewname='/upload/'.$filename;
$callback = $_REQUEST["CKEditorFuncNum"];
echo "<script type='text/java script'>window.parent.CKEDITOR.tools.callFunction($callback,'".$previewname."','');</script>";
}else{
// 上传失败获取错误信息
echo "<font color=\"red\"size=\"2\">*文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)</font>";
}
}
三、view模板
<script src="/ckeditor.js"></script>
<textarea id="content" cols="20" rows="1" name="content" class="content"></textarea>
<script type="text/java script">
var ck= CKEDITOR.replace( 'content',{
allowedContent: true,
});
</script>
四、ckeditor config.js配置;
CKEDITOR.editorConfig = function( config ) {
var toke= $("input[name='_token']").val();
config.filebrowserUploadUrl="/admin/file/uploadimg?_token="+toke;
};
ok,就这样就可以了。
备注:重要的就是这段
“var toke= $("input[name='_token']").val();
config.filebrowserUploadUrl="/admin/file/uploadimg?_token="+toke;”