在最近项目要新增一个内容文章,文章包含一般的正文内容,其中正文中可以包含多张图片、文章最多包含一个音频文件。文章正文的上传功能我是通过textarea文本域绑定kindeditor编辑器实现的,而单独音频文件的上传是通过button按钮绑定kindeditor编辑器实现。因为项目主的并发访问量很小,上传之后的图片和音频保存在项目服务器的静态文件中。

1、textarea文本域绑定kindeditor编辑器

JS代码如下:

  <script type="text/javascript">
    $(function(){   

      KindEditor.ready(function(K) {

        var editor = K.create('textarea[name='promoteContent']',{

          height:"300px",

          width:"650px",

          cssPath:'${webPath}/plugin/kindeditor/plugins/code/prettify.css',

          uploadJson:'${webPath}/plugin/kindeditor/upload_json.jsp', //文件上传

          fileManagerJson:'${webPath}/plugin/kindeditor/file_manager_json.jsp',

          allowImageRemote : false,

          allowFileManager : true,

          afterBlur:function(){

             this.sync();//数据同步,此处一定要设置

            }

        });

      });

    });

  </script>

html代码如下:

  <textarea name="promoteContent" id="promoteContent" style="width:100%;height:100%"></textarea>

2、button按钮绑定kindeditor编辑器实现文件单独上传(也只能上传单独的文件)

JS代码如下:

 <script type="text/javascript">

  $(function(){ 

KindEditor.ready(function(K) {
 var audiobutton = K.uploadbutton({
  button : K('#audioUpload')[0], //audioUpload:需要绑定控件的button按钮Id值
   fieldName : 'imgFile',
  url : '../jsp/upload_json.jsp', //修改upload_json.jsp,可以设置文件的保存路径,限制文件的上传格式和大小及相应的报错信息
  afterUpload : function(data) {
if (data.error === 0) {
alert(data.url); //文件上传成功后进行的操作,可以进行html标签操作也可以进行kindeditor对象的操作
              K("#audioUrL").val(data.url);//设置html的标签值,可用于将路径信息传到Java后端
              var div = K("#audioShow"); //如下设置可用于上传文件在页面的回显
              div.html("");         //div层的回显要先清空,才能控制只回显一个文件
              div.append("<embed src='"+data.url+"' />"); //拼接div的回显标签
                } else {
alert(data.message);//文件上传失败的弹框提示信息(一般不修改)
}
}
    });
    audiobutton.fileBox.change(function(e) { //此处需要注意和var变量名(audiobutton)一致
  audiobutton.submit();
    });

  });

});

 </script>

html代码如下:

  <div>

    <div id="inputbox">

      <input type="text" name=“audioUrL” id=“audioUrL” placeholder="请选择本地音频文件" >

      <input type="button" id=“audioUpload” value="请选择">

    </div>  

    <div id="audioShow">

    </div>

  <div>

upload_json.jsp文件的编辑修改:

  //文件保存目录路径
  String savePath = "/resources/common/activity/files/";

  //文件保存目录URL
  String saveUrl =  "/eticket-resources/common/activity/files/"; 

  //定义允许上传的文件扩展名(根据需要对文件类型进行设置)
  HashMap<String, String> extMap = new HashMap<String, String>();
  extMap.put("image", "gif,jpg,jpeg,png,bmp");
  extMap.put("flash", "swf,flv");
  extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
  extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2"); 

  //最大文件大小(10M:可修改)
  long maxSize = 1024*1024*10;

  //dirName用来修改存放文件的文件夹名称(此处背注释了原代码)

  String dirName = request.getParameter("dir")==null?"img":"img";
  /*

  if (dirName == null) {
  dirName = "img";
  }

  */

  //检查文件大小(提示语根据需要进行调整)
  if(item.getSize() > maxSize){
    out.println(getError("上传文件大小超过限制。"));
    return;
  }

最终实现的页面效果如下:
												

Kindeditor富文本实现textarea文本域的上传及单独button 按钮绑定(用来实现单文件上传)的更多相关文章

  1. spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)

    一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...

  2. 【kindeditor】KindEditor获取多个textarea文本框的值并判断非空

    kindeditor官网:http://kindeditor.net/demo.php 如何获取多个KindEditor中textarea文本框的值,方式很多种(带有HTML标签). var intr ...

  3. 在ASP.NET中使用KindEditor富文本编辑器

    以前一直用百度的UEditor.这次客户提了一个需求要在编辑器中插入Flash动画,但是不知道怎么用UEditor实现,于是选用了KindEditor. 更重要的一点是,客户的网站使用Framewor ...

  4. KindEditor得不到textarea值的解决方法

    转自:http://blog.phpha.com/archives/510.html 以前有朋友遇到过这个问题,就是KindEditor在火狐下或者其他浏览器下都无法得到textarea文本框的值,点 ...

  5. KindEditor得不到textarea值的解决方法----摘至天涯

    以前有朋友遇到过这个问题,就是KindEditor在火狐下或者其他浏览器下都无法得到textarea文本框的值,点击表单提交按钮得到的是空白.昨天天涯PHP博客[http://blog.phpha.c ...

  6. vue+Ueditor集成 [前后端分离项目][图片、文件上传][富文本编辑]

    后端DEMO:https://github.com/coderliguoqing/UeditorSpringboot 前端DEMO:https://github.com/coderliguoqing/ ...

  7. Ueditor1.4.3实现跨域上传到独立文件服务器,完美解决单文件和多文件上传!

    再写配置方法之前先吐槽一下网上的各种教程,TM没一个有卵用,一群傻屌不会写就别写,写了就要负责. 百度google搜了半天,全是配置什么document.domain,根域名什么的,我只想对你说: 好 ...

  8. kindEditor 富文本编辑器 使用介绍

    第一版:存放位置:  ---->把该创建的文件包放到javaWeb 过程的 WEB_INF 下:如图所示. 第二步:< kindEditor 插件的引用> :JS引用 <scr ...

  9. (转)淘淘商城系列——KindEditor富文本编辑器的使用

    http://blog.csdn.net/yerenyuan_pku/article/details/72809794 通过上文的学习,我们知道了怎样解决KindEditor富文本编辑器上传图片时的浏 ...

随机推荐

  1. wrapper induction随笔

    本文是一篇介绍Wrapper Induction的阅读笔记,原文详见<Wrapper induction:Efficiency and expressiveness>. Wrapper I ...

  2. Port Channel and VPC

    1.Port Channel 介绍 Port Channel  简介 绑定多个物理链路(最多8条),到一个单一的逻辑链路,在两个物理设备之间 每个物理端口只能被放入一个port-channel中. 在 ...

  3. np.mgrid 用法

    import numpy as np dtype=np.float32 num_anchors = 6 y, x = np.mgrid[0:4, 0:4] print(y) print(x) y = ...

  4. FB面经 Prepare: Even Tree

    You are given a tree (a simple connected graph with no cycles). The tree has nodes numbered from to ...

  5. 关于Ajax的认识和封装(小记)

    一,Ajax 的概念 1,Ajax 是一种在无需重新加载整个网页(即刷新网页)的情况下,能够更新部分网页的技术. 2,Ajax 的全称是Asynchronous Javascript And XML” ...

  6. 数据结构与算法JS实现

      行解算法题,没错,就是这么方便. 当然也可以使用 Node.js 环境来执行,具体参考Node.js官方文档即可. 二 对象和面向对象编程 js中5种数据类型,并没有定义更多的数据类型,但是运用j ...

  7. sql 生成随机字符串

    生成三位随机字母+12位数字 ),), @c int; select @CardCode=abs(CHECKSUM(NEWID())) -LEN(@CardCode); ,@c)) set @Card ...

  8. Java文件类型工具类

    package *; import java.util.HashMap; import java.util.Map; /** * <p> * <b>FileTypeEnum2& ...

  9. Centos7 安装redis

    1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.检查及下载gcc gcc -v yum -y inst ...

  10. Excel控制AutoCad进行坐标标注

    做过工程测绘,平面设计,使用过Autocad制图的朋友们,都经常要在CAD上标注点或者线的坐标,CAD自身的标注功能,并不能同时标注X和Y坐标,,要同时标注X和Y坐标,可以使用南方CASS软件,或者一 ...