【NKeditor】富文本编辑器上传图片

这篇具有很好参考价值的文章主要介绍了【NKeditor】富文本编辑器上传图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的:

使用NKeditor富文本编辑器上传图片,同时上传到七牛云存储上。后端语言使用ThinkPHP。

效果

【NKeditor】富文本编辑器上传图片

实现方法:

1、下载NKeditor插件库

下载地址:NKeditor: NKedtior是一款优秀的轻量级Web编辑器,基于 Kindedior 二次开发

里面的文档demo写的比较详细,可以直接使用,不过里面上传七牛云的代码不能用,所以我是自己写的。 

2、部署

 把下载的NKeditor插件库放到/public/文件夹下。

 
<link href="/NKeditor/libs/bootstrap/bootstrap.min.css" rel="stylesheet">
 
<div role="tabpanel" class="tab-pane fade" id="default">
    <form name="example" method="post">
        <textarea name="content2" style="width:900px;height:500px;visibility:hidden;"></textarea>
    </form>
</div>
 
 
<script charset="utf-8" src="/NKeditor/NKeditor-all.js"></script>
<!-- 如果你不需要使用批量图片上传,涂鸦功能和文件管理功能,就不需要引入 jquery -->
<script charset="utf-8" src="/NKeditor/libs/jquery.min.js"></script>
<!-- JDialog是一款优秀的漂亮,轻量级的js弹出框插件 不是必须引入的,如果不引入则使用默认的 window.alert() 来弹出提示信息 -->
<script charset="utf-8" src="/NKeditor/libs/JDialog/JDialog.min.js"></script>
<script src="/NKeditor/libs/bootstrap/bootstrap.min.js"></script>
 
<script>
KindEditor.ready(function(K) {
    
    K.create('textarea[name="mytextarea"]', {
        uploadJson : '/teacher/qiniu/uploadImg',
        // fileManagerJson : K.basePath+'php/qiniu/file_manager_json.php',
        dialogOffset : 0, //对话框距离页面顶部的位置,默认为0居中,
        allowFileManager : false,
        allowImageUpload : true,
        allowMediaUpload : false,
        items : ['source','undo','redo','preview','print','code','quote','plainpaste','justifyleft','justifycenter','justifyright','justifyfull','insertorderedlist','insertunorderedlist','indent','outdent','subscript','superscript','clearhtml','quickformat','selectall','formatblock','fontname','fontsize','forecolor','hilitecolor','bold','italic','underline','strikethrough','lineheight','removeformat','image','table','tablecell','hr','baidumap','pagebreak','link','unlink','fullscreen'
        ],
        afterCreate : function() {
            var self = this;
            K.ctrl(document, 13, function() {
                self.sync();
                K('form[name=example]')[0].submit();
            });
            K.ctrl(self.edit.doc, 13, function() {
                self.sync();
                K('form[name=example]')[0].submit();
            });
        },
        showHelpGrid: false, // 是否显示输入辅助线
        themeType : "black", //主题
        //错误处理 handler
        errorMsgHandler : function(message, type) {
            try {
                JDialog.msg({type:type, content:message, timer:2000});
            } catch (Error) {
                alert(message);
            }
        }
    });
})
</script>

后端代码:返回值是json,返回格式与下面代码一致。

<?php
namespace app\teacher\controller;
use think\Controller;
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
 
/**
 * 七牛云操作
 */
class Qiniu extends Base
{
 
    public function uploadImg()
    {
        error_reporting(0);
 
        vendor('qiniu.autoload');
        $accessKey = config('ACCESSKEY');
        $secretKey = config('SECRETKEY');
        $bucket = config('BUCKET');
        $domain = config('DOMAIN');
 
        $fileType = trim($_GET['fileType']);
 
        if (empty($fileType)) {
            $fileType = "image";
        }
 
        // 要上传图片的本地路径
        $filePath = $_FILES['imgFile']['tmp_name'];
 
        $ext = substr($_FILES['imgFile']['name'],strrpos($_FILES['imgFile']['name'],'.')+1);  //文件后缀
         // 后缀大写转换成小写
         $ext = strtolower($ext);
 
        $format = array('png','jpg','gif','jpeg','bmp','tif','svg','webp');  //允许上传的格式
        if (!in_array($ext,$format)) {
            $result = array(
                'code'=>'001',
                'message'=>'格式错误'
            );
        }
 
        // 上传到七牛后保存的文件名
        $key = 'shouyi_img/'.substr(md5($filePath) , 0, 5) .'/'. date('YmdHis') . rand(0, 9999) . '.' . $ext;
 
        // 构建鉴权对象
        $auth = new Auth($accessKey, $secretKey);
 
        $token = $auth->uploadToken($bucket);
 
        // 初始化 UploadManager 对象并进行文件的上传
        $uploadMgr = new UploadManager();
 
        // 调用 UploadManager 的 putFile 方法进行文件的上传
        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
 
        // var_dump($ret);
        if ($err !== null) {
 
            $result = array(
                'code'=>'001',
                'message'=>'上传失败'
            );
 
        } else {
            $result = array(
                'code'=>'000',
                'message'=>'上传成功'.$_FILES['imgFile']['name'],
                'data'=>array('url' => $domain . $ret['key']),
            );
        }
 
        die(json_encode($result,JSON_UNESCAPED_UNICODE));
    }
}

文件上传到七牛云可参看之前写的文章:【七牛云】使用PHP把文件上传到七牛云_php 七牛云上传_下页、再停留的博客-CSDN博客

4、自定义工具栏

在items根据需要添加相应的功能

    source : 'HTML代码',
    preview : '预览',
    undo : '后退(Ctrl+Z)',
    redo : '前进(Ctrl+Y)',
    cut : '剪切(Ctrl+X)',
    copy : '复制(Ctrl+C)',
    paste : '粘贴(Ctrl+V)',
    plainpaste : '粘贴为无格式文本',
    wordpaste : '从Word粘贴',
    selectall : '全选(Ctrl+A)',
    justifyleft : '左对齐',
    justifycenter : '居中',
    justifyright : '右对齐',
    justifyfull : '两端对齐',
    insertorderedlist : '编号',
    insertunorderedlist : '项目符号',
    indent : '增加缩进',
    outdent : '减少缩进',
    subscript : '下标',
    superscript : '上标',
    formatblock : '段落',
    fontname : '字体',
    fontsize : '文字大小',
    forecolor : '文字颜色',
    hilitecolor : '文字背景',
    bold : '粗体(Ctrl+B)',
    italic : '斜体(Ctrl+I)',
    underline : '下划线(Ctrl+U)',
    strikethrough : '删除线',
    removeformat : '删除格式',
    image : '图片',
    multiimage : '批量图片上传',
    graft : '涂鸦',
    flash : 'Flash',
    media : '视音频',
    table : '表格',
    tablecell : '单元格',
    hr : '插入横线',
    emoticons : '插入表情',
    link : '超级链接',
    unlink : '取消超级链接',
    fullscreen : '全屏显示',
    about : '关于',
    print : '打印(Ctrl+P)',
    filemanager : '文件空间',
    code : '插入程序代码',
    quote : '插入引用',
    map : 'Google地图',
    baidumap : '百度地图',
    lineheight : '行距',
    clearhtml : '清理HTML代码',
    pagebreak : '插入分页符',
    quickformat : '一键排版',
    insertfile : '插入文件',
    template : '插入模板'

 文章来源地址https://www.toymoban.com/news/detail-695032.html

到了这里,关于【NKeditor】富文本编辑器上传图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue +vue-quill-editor+ Element UI使用富文本编辑器,上传图片,上传视频

    如果你们有问题,可以发评论提问,我看见一定回复!!!!! 一、基本使用 1、下载vue-quill-editor组件 2、引入· 富文本组件 方式一:全局引入 (在 main.js 文件中) 方式二:按需引入 (在 单个组件 中引用) 3、工具栏相关配置 4、设置工具栏中文提示 5、修改vue-quill-editor字体

    2024年02月08日
    浏览(61)
  • 【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接

    前言:最近项目上需要使用富文本编辑器,觉得tinymce很不错就用了,具体怎么在项目中使用参考 【vue】 vue2 中使用 Tinymce 富文本编辑器 【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑 这两天又遇到了新的问题,图片上传后是看地址栏发现是base64的

    2024年02月14日
    浏览(76)
  • UEditor富文本编辑器上传图片打不开,提示“后端配置项没有正常加载,上传插件不能正常使用”

    1、安装 npm install vue-ueditor-wrap 2、下载所需资源 这一步在解决报错的时候会用到 👉👉👉👉👉 UEditor资源下载链接 上面的打不开请从下面链接下载项目 ueditor-download: vue项目中集成ueditor的UE资源 3、下载完成后将文件夹放到public文件夹下 4、 配置ueditor.config.js,并且在main.j

    2024年02月13日
    浏览(68)
  • vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    1、安装使用 安装 在main.js中引入样式 在使用编辑器的页面引入js 模板 js  到这一步编辑器就可以正常显示了 2、上传图片、视频 上传到后台接口的可直接按照文档这个配置就行接口返回格式也要可文档上一致    2)自定义上传(一般上传到别的服务器上,我这边是上传到七

    2024年02月11日
    浏览(65)
  • android项目实战之编辑器图片上传预览

    现状分析 项目的需求用到编辑器,编辑器中又可能用到图片上传功能。 实现方案 1. 增加依赖库,可以参考前面的几篇文章,都有描述。 2. 核心代码实现 欢迎点赞、收藏、转发。

    2024年02月04日
    浏览(66)
  • 20230711----重返学习-组件缓存-图片上传-富文编辑器-鉴权处理

    keep-alive组件的使用 keep-alive组件的原理 图片上传流程 点击上传图片后,把图片发送给服务器。 服务器返回一个相对或绝对地址。 提交时,把图片地址与其余表单数据一起传递给服务器。 el-upload组件 图片上传分为两步: 选取图片 规则限制:类型、大小… multiple 是否支持多

    2024年02月16日
    浏览(42)
  • dede ckeditor编辑器让上传图片自动使用绝对地址显示

    dedecms ckeditor编辑器让上传图片自动使用绝对地址显示,本教程适合织梦cms v57,其他版本未测试。由于我们网站为了更好更有效的解决seo方案,于是在考虑到发布文章的时候,上传的正文图片,是非绝对路径的,于是我们把织梦cms默认编辑器ckeditor进行了小幅度的修改: 首先

    2024年02月16日
    浏览(40)
  • Vue3 中vue-quill富文本编辑器图片缩放

     导包   添加配置   注: 该编辑器已经不在维护了,很古老了,打包后如果报错,建议使用其他编辑器

    2024年04月25日
    浏览(51)
  • vue-quill-editor富文本编辑器-扩展表格、图片调整大小

    上篇文章已经讲到、vue-quill-editor的基本配置和图片转成url 这篇文章主要使用插件来完成 图片调整大小 和 表格的插件使用( 这两个目前quill 版本并不兼容 如果有大神解决了还望指点 ) 参考文章: vue-quill-editor 富文本编辑器支持图片拖拽和放大缩小_*且听风吟的博客-CSDN博

    2024年02月04日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包