Quill.js 富文本编辑器插件使用

官网 API 查看:https://quilljs.com/docs/quickstart/javascript

图片上传及路径设置php

对于在该编辑器中生成的图片为 base64 编码,所生成的字符占据太大空间,可考虑将其上传至服务器中,在该图片设置保存好的文件路径便可,以 php 为例。java

js 代码git

// 圖片上傳
quill.on('text-change', function(delta, oldDelta, source) {
	var $img = $("#editor .ql-editor img[src^='data:image']");
	var img = $img.length;
	if(img > 0){
	    $img.each(function(idx, dom){
	        var src = $(dom).attr('src');
                var url = ""; // php 后台文件上传方法
	        $.post(url, {img: src}, function(res){
		    var href = res.src; // 返回图片路径
		    $(dom).attr('src', href);
	        }, "json");
	    });
	}
});

php 代码github

// base64 圖片上傳
function base64_upload() {
	$base64 = $_POST['img'];
        $base64_image = str_replace(' ', '+', $base64);
        //post的数据里面,加号会被替换为空格,须要从新替换回来,若是不是post的数据,则注释掉这一行
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
            //匹配成功
            if($result[2] == 'jpeg'){
                $image_name = uniqid().'.jpg';
            }else{
                $image_name = uniqid().'.'.$result[2];
            }
            $image_file = "path"; // 储存文件的路径
            //服务器文件存储路径
            if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){
                $res = array('src' => $image_name, 'code' => 1);
				echo json_encode($res);
            }else{
                return false;
            }
        }else{
            return false;
        }
}

对表格的支持json

该插件暂不支持表格的编辑,可自行进行拓展,详情查看 API 文档,或者访问 https://github.com/quilljs/quill/issues/117服务器

相关文章
相关标签/搜索