使用富文本编辑器上传图片实例详解

富文本编辑器上传图片

一、导入kindeditor的js

<script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script>
<script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/lang/zh_CN.js"></script>

二、将kindeditor与一个文本域textarea进行关联,即用textarea初始化一个kindeditor对象

itemAddEditor = TAOTAO.createEditor("#itemAddForm [name=desc]");
//初始化类目选择和图片上传器
 TAOTAO.init({fun:function(node){
    TAOTAO.changeItemParam(node, "itemAddForm");
 }});

三、设置要上传的参数

var TT = TAOTAO = {
  // 编辑器参数
  kingEditorParams : {
    //指定上传文件参数名称
    filePostName : "uploadFile",
    //指定上传文件请求的url。
    uploadJson : '/pic/upload',
    //上传类型,分别为image、flash、media、file
    dir : "image"
  },

  init : function(data){
    // 初始化图片上传组件
    this.initPicUpload(data);
    // 初始化选择类目组件
    this.initItemCat(data);
  },
  // 初始化图片上传组件
  initPicUpload : function(data){
    $(".picFileUpload").each(function(i,e){
      var _ele = $(e);
      _ele.siblings("div.pics").remove();
      _ele.after('\
        <div class="pics">\
          <ul></ul>\
        </div>');
      // 回显图片
      if(data && data.pics){
        var imgs = data.pics.split(",");
        for(var i in imgs){
          if($.trim(imgs[i]).length > 0){
            _ele.siblings(".pics").find("ul").append("<li><a href='"+imgs[i]+"' target='_blank'><img src='"+imgs[i]+"' width='80' height='50' /></a></li>");
          }
        }
      }
      //给“上传图片按钮”绑定click事件
      $(e).click(function(){
        var form = $(this).parentsUntil("form").parent("form");
        //打开图片上传窗口
        KindEditor.editor(TT.kingEditorParams).loadPlugin('multiimage',function(){
          var editor = this;
          editor.plugin.multiImageDialog({
            clickFn : function(urlList) {
              var imgArray = [];
              KindEditor.each(urlList, function(i, data) {
                imgArray.push(data.url);
                form.find(".pics ul").append("<li><a href='"+data.url+"' target='_blank'><img src='"+data.url+"' width='80' height='50' /></a></li>");
              });
              form.find("[name=image]").val(imgArray.join(","));
              editor.hideDialog();
            }
          });
        });
      });
    });

服务端代码

 public Map uploadPicture(MultipartFile uploadFile) {
    Map resultMap=new HashMap<>();
    try {
      //生成一个新的文件名
      //去原始文件名
      String oldName=uploadFile.getOriginalFilename();
      //生成新的文件名
      //UUID.randomUUID();
      String newName=IDUtils.genImageName();
      newName=newName+oldName.substring(oldName.lastIndexOf("."));
      String imagePath=new DateTime().toString("/yyyy/MM/dd");
      //上传图片
      boolean result=FtpUtil.uploadFile(FTP_ADDRESS,FTP_PORT, FTP_USERNAME, FTP_PASSWORD, FTP_BASE_PATH,
          imagePath, newName, uploadFile.getInputStream());
      System.out.println("result="+result);
      if(!result){
        resultMap.put("error", 1);
        resultMap.put("message", "文件上传失败");
        System.out.println("hh");
        return resultMap;
      }

      resultMap.put("error", 0);
      resultMap.put("url", IMAGE_BASE_PATH + imagePath + "/" + newName);
      return resultMap;
    } catch (IOException e) {
      resultMap.put("error", 1);
      resultMap.put("message", "文件上传异常");
      return resultMap;
    }
  }

注意:服务端返回的json串的格式{error: 0|1,message|url} 其中error为整型不为字符串,如果写成字符串图片能够正常上传至服务器,但是不能在浏览器中回显。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 使用富文本编辑器上传图片实例详解

    富文本编辑器上传图片 一.导入kindeditor的js <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script> <script type="text/javascript" charset="utf-8" src=&qu

  • 微信小程序整合使用富文本编辑器的方法详解

    本文实例讲述了微信小程序整合使用富文本编辑器的方法.分享给大家供大家参考,具体如下: 使用WxParse插件实现小程序的富文本显示 ,下载地址:富文本插件WxParse 具体使用步骤: 1. 复制插件文件夹到项目根目录,emojis是表情包,可选择性删除 2. 在.js文件中引入WxParse模块 var WxParse= require('../../../wxParse/wxParse.js'); 3. 在.wxss文件中引入WxParse.wxss样式,也可以在app.wxss中引入 @i

  • Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)

    使用教程(注意细看总结部分,写了几点,希望有所帮助): 1.安装插件:npm install vue-quill-editor 2.安装插件依赖:npm install quill 3.main.js文件中引入: import Vue from 'vue' import VueQuillEditor from 'vue-quill-editor' import 'quill/dist/quill.core.css' import 'quill/dist/quill.snow.css' impor

  • Django框架使用富文本编辑器Uedit的方法分析

    本文实例讲述了Django框架使用富文本编辑器Uedit的方法.分享给大家供大家参考,具体如下: Uedit是百度一款非常好用的富文本编辑器 一.安装及基本配置 官方GitHub(有详细的安装使用教程):https://github.com/zhangfisher/DjangoUeditor 1. settings.py INSTALLED_APPS = [ ... 'DjangoUeditor', ... ] 2. 配置urls from django.conf.urls import url

  • Angularjs上传图片实例详解

    •上传图片需要引入插件ngFileUpload,使用bower安装方法: bower install ng-file-upload --save,安装后需要在命名app的名字js文件中注入,如下所示: (function() { angular.module('app', [ 'ionic','ngStorage','ngFileUpload' ]); })(); •在相应的html中引入文件路径:<script src="lib/ng-file-upload/ng-file-upload

  • Django之choices选项和富文本编辑器的使用详解

    项目准备 1.创建数据库 create database choices_test default charset utf8; 2.创建一个名为 choices_test 的Django项目: 3.创建应用app01: 项目结构如下所示 4.配置数据库: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'choices_test', 'USER': 'root', 'PASSWORD': 'root

  • iOS实现富文本编辑器的方法详解

    前言 富文本编辑器不同于文本编辑器,国内做的比较好的比如有百度的UEditor和kindEditor.但是这两个也有它的缺点:界面过于复杂.不够简洁.UI设计也比较落后.不够轻量化,这篇文章我们将给大家介绍利用iOS如何实现富文本编辑器. 实现的效果 解决思路 采用webview加载一个本地html文件,该html内部编写好js方法用于与oc相互调用 最终输出该富文本字符串传输给服务器 为什么选择这样的方式 服务端要求我最终返回的数据格式为: { @"Id":"当时新建模板这

  • Java文本编辑器实现方法详解

    本文实例讲述了Java文本编辑器实现方法.分享给大家供大家参考,具体如下: 结构分析: 界面布局 : EditFrame main方法所在: EditText 打开功能实现:  FileReadThread 保存跟能实现:  save 实际运行效果: 附:完整代码实现 一. EditFrame 包括一个菜单Menu 底部:日期时间 代码附上: public class EditFrame extends JFrame { // TODO 自动生成的构造函数存根 boolean saveFlag

  • django轻松使用富文本编辑器CKEditor的方法

    前言 django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便.遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的控件.ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器.它可以和多种编程语言相结合,python当然也不例外.本文就来介绍一下如何在基于django博客系统如何完美地用上ckeditor. 使用方法 1.安装 pip install django-ckeditor 2.将'c

  • Vue+Element使用富文本编辑器的示例代码

    富文本编辑器在任何项目中都会用到,在Element中我们推荐vue-quill-editor组件,现在我就把它提供给大家,希望对大家有用.具体截图如下: 安装编辑器组件 具体方法:npm install vue-quill-editor --save 编写组件 首先我们在components文件夹里创建ue.vue组件,效果图如下: 组件 <!-- 组件代码如下 --> <template> <div> <script id="editor"

随机推荐