kindeditor 富文本粘贴时自动同步上传图片,自动替换图片地址

kindeditor 富文本粘贴时自动同步上传图片,自动将第三方图片地址替换成我们自己的

1.我的的页面模块内容

<tr>
    <td class="tdl">内容详情:</td>
    <td class="tdr">
        <textarea id="content" name="content" class="input-long" style="width: 800px; height:500px;"></textarea>
    </td>
</tr>

2.js初始化加载

//富文本编辑框初始化
KindEditor.ready(function (K) {
    window.editorDescribtion = K.create('#content', {
        cssPath: '/kindeditor/plugins/code/prettify.css',
        uploadJson: '/upload/upload_json',//这里是当个图片手动上传接口地址
        fileManagerJson: '/file/file_manager_json',
        allowFileManager: true,
        filterMode:false,
        afterCreate: function () {
            var self = this;
            K.ctrl(document, 13, function () {
                self.sync();
                document.forms['example'].submit();
            });
            K.ctrl(self.edit.doc, 13, function () {
                self.sync();
                document.forms['example'].submit();
            });
            //复制粘贴内容,触发抓包事件
            var editorObj = this;
            //得到编辑器的文档对象
            var doc = editorObj.edit.doc;
            $(doc.body).bind('paste', function (event) {
                setTimeout(function () {
                    var useless = $(doc.body).find(".__kindeditor_paste__");
                    if (useless) {
                        useless.removeAttr("style");
                        useless.removeClass("__kindeditor_paste__");
                    }
                    var imgs = $(doc.body).find("img");
                    var compelete = imgs.length;
                    var layerindex;
                    if (compelete > 0) {
                        // 转存时加载弹出层,这里用的是layer
                        layerindex = layer.load(1, {
                            shade: [0.3, '#fff'],
                            content: '网络图片转存中...',
                            success: function (layero) {
                                layero.find('.layui-layer-content').css({
                                    'padding-top': '39px',
                                    'width': '120px',
                                    'margin-left': '-60px'
                                });
                            },
                            icon: 6, time:3000
                        });
                    }
                    $.each(imgs, function (index, item) {
                        var _that = $(this);
                        var imgSrc = decodeURIComponent(_that.attr("src"));
                        if (imgSrc.indexOf("superzhuangplus") > -1) {
                            //已经上传到plus服务器的图片无需再次上传
                            compelete--;
                            if (compelete === 0) {
                                layer.close(layerindex);
                            }
                        } else{
                        	//上传图片接口
                            $.ajax({
                                url: "/upload/editorFileupload",
                                data: "imgUrl=" + imgSrc,
                                type: "POST",
                                dataType: "json",
                                success: function (data) {
                                    if (data != null && data.code == 200 && data.data != null) {
                                    	//上传成功之后,将图片访问地址替换成我们自己的
                                        _that.attr("src",data.data.filePath);
                                        _that.attr("data-ke-src",data.data.filePath);
                                    }
                                }
                            });
                        }
                    });
                }, 0);
            });
        },

    });
    prettyPrint();
});

3.我们粘贴一片很长的文章到富文本中(文章中有很多图片或gif)
在这里插入图片描述
4.文章上传过程中我们要等一会,因为图片上传成功之后,还需要将文章中第三方图片地址替换成我们自己的图片地址

5.体验地址:https://www.i847.cn/kindeditor-plus/index.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先,在 `application\extra` 目录下新建一个 `config.php` 文件,添加以下配置: ```php <?php return [ 'upload_path' => '/uploads/', //上传文件保存的路径 'upload_exts' => 'gif,jpg,jpeg,png,bmp', //允许上传的文件类型 ]; ``` 2. 在 `application\index\controller` 目录下新建一个 `Upload.php` 控制器,添加以下代码: ```php <?php namespace app\index\controller; use think\Controller; use think\Request; class Upload extends Controller { public function uploadImage() { $file = request()->file('imgFile'); $info = $file->validate(['ext' => config('upload_exts')])->move(ROOT_PATH . 'public' . config('upload_path')); if ($info) { $image_url = config('upload_path') . $info->getSaveName(); return json(['error' => 0, 'url' => $image_url]); } else { return json(['error' => 1, 'message' => $file->getError()]); } } } ``` 3. 在 `application\index\view` 目录下新建一个 `upload_image.html` 文件,添加以下代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> </head> <body> <form action="<?php echo url('upload/uploadImage'); ?>" enctype="multipart/form-data" method="post"> <input type="file" name="imgFile"> <input type="submit" value="上传"> </form> </body> </html> ``` 4. 修改 `kindeditor` 配置文件 `public\static\kindeditor\config.js`,添加以下代码: ```javascript //上传图片配置 imageUploadJson = '<?php echo url("upload/uploadImage"); ?>'; ``` 5. 在 `public\static\kindeditor\plugins` 目录下新建一个 `image.php` 文件,添加以下代码: ```php <?php //获取上传文件保存的路径 $save_path = $_SERVER['DOCUMENT_ROOT'] . $_POST['save_path']; //获取要上传的文件 $file = $_FILES['imgFile']; //上传文件 if (move_uploaded_file($file['tmp_name'], $save_path . $file['name'])) { $image_url = $_POST['base_url'] . $_POST['save_path'] . $file['name']; //返回上传结果 echo json_encode(['error' => 0, 'url' => $image_url]); } else { echo json_encode(['error' => 1, 'message' => '上传失败']); } ``` 6. 修改 `kindeditor` 的 `php` 上传文件处理程序 `public\static\kindeditor\php\upload_json.php`,添加以下代码: ```php //获取要保存的文件路径和文件名 $save_path = $_SERVER['DOCUMENT_ROOT'] . $_POST['save_path']; $file_name = uniqid() . strrchr($_FILES['imgFile']['name'], '.'); //上传文件 if (move_uploaded_file($_FILES['imgFile']['tmp_name'], $save_path . $file_name)) { $image_url = $_POST['base_url'] . $_POST['save_path'] . $file_name; //返回上传结果 echo json_encode(['error' => 0, 'url' => $image_url]); } else { echo json_encode(['error' => 1, 'message' => '上传失败']); } ``` 7. 在浏览器中访问 `http://localhost/index/upload_image.html`,上传一张图片测试。如果上传成功,会返回图片的 URL 地址。在 `kindeditor` 中也可以正常上传图片了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值