当前位置:   article > 正文

关于kindeditor富文本编辑的上传图片、音频、和视频的使用

关于kindeditor富文本编辑的上传图片、音频、和视频的使用

版本:KindEditor 4.x 

官方文档:http://kindeditor.net/doc.php

最近在公司实现一个功能:

大概就是这样:


富文本编辑器的上传图片、音频和视频的原理,就是将这些文件上传至项目的静态文件中,然后将相应文件的存储路径保存至数据库里面。

我是用的是富文本编辑器中默认的jsp文件upload_json.jspfile_manager_json.jsp

upload_json.jsp:文件上传时,辨别文件类型,生成文件存放目录以及重命名文件等等

file_manager_json.jsp:和浏览文件有关

1、首先将kindeditor放在相应的js下面:


2、修改upload_json.jspfile_manager_json.jsp中有关文件的目录:

upload_json.jsp:(有关文件保存路径和文件上传大小,以及下面有关文件类型验证等等)


file_manager_json.jsp:


3、在相应jsp文件中添加此插件:

首先需要引进插件,然后在相应的js中添加js代码:

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
  4. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  5. <%@ taglib prefix="sg" uri="http://www.sungness.com/tags" %>
  6. <s:url value="/manage/groupinvited/groupinvitedcontroller/save" var="saveURL"/>
  7. <form:form commandName="wechatGroupInvited" id="edit-form" method="post" name="adminForm"
  8. action="${saveURL}" class="form-validate form-horizontal">
  9. <fieldset>
  10. <legend>${wechatGroupInvited.id != null ? wechatGroupInvited.id : ""} 详细信息</legend>
  11. <div class="control-group">
  12. <div class="control-label">
  13. <label id="jform_pageName-lbl" for="jform_pageName" class="hasTooltip required"
  14. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.pageName,wechatGroupInvited.pageName.tip"/>">
  15. <s:message code="wechatGroupInvited.pageName"/><span class="star"> *</span></label>
  16. </div>
  17. <div class="controls">
  18. <form:input path="pageName" id="jform_pageName" class="required" size="30"
  19. required="required" aria-required="true" onlyread="true"/>
  20. </div>
  21. </div>
  22. <div class="control-group">
  23. <div class="control-label">
  24. <label id="jform_topImgUrl-lbl" for="jform_topImgUrl" class="hasTooltip required"
  25. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.topImgUrl,wechatGroupInvited.topImgUrl.tip"/>">
  26. <s:message code="wechatGroupInvited.topImgUrl"/><span class="star"> *</span></label>
  27. </div>
  28. <div class="controls">
  29. <form:input path="topImgUrl" id="jform_topImgUrl" class="required" size="30"
  30. required="required" aria-required="true" value=""/>
  31. <a href="javascript:void(0)" id="upload">上传图</a>
  32. </div>
  33. </div>
  34. <div class="control-group">
  35. <div class="control-label">
  36. <label id="jform_headImgUrl-lbl" for="jform_headImgUrl" class="hasTooltip required"
  37. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.headImgUrl,wechatGroupInvited.headImgUrl.tip"/>">
  38. <s:message code="wechatGroupInvited.headImgUrl"/><span class="star"> *</span></label>
  39. </div>
  40. <div class="controls">
  41. <form:input path="headImgUrl" id="jform_headImgUrl" class="required" size="30"
  42. required="required" aria-required="true" value=""/>
  43. <a href="javascript:void(0)" id="upload_1">上传头像</a>
  44. </div>
  45. </div>
  46. <div class="control-group">
  47. <div class="control-label">
  48. <label id="jform_voiceUrl-lbl" for="jform_voiceUrl" class="hasTooltip required"
  49. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.voiceUrl,wechatGroupInvited.voiceUrl.tip"/>">
  50. <s:message code="wechatGroupInvited.voiceUrl"/><span class="star"> *</span></label>
  51. </div>
  52. <div class="controls">
  53. <form:input path="voiceUrl" id="jform_voiceUrl" class="required" size="30"
  54. required="required" aria-required="true" value=""/>
  55. <a href="javascript:void(0)" id="upload_2">上传语音</a>
  56. </div>
  57. </div>
  58. <div class="control-group">
  59. <div class="control-label">
  60. <label id="jform_introduce-lbl" for="jform_introduce" class="hasTooltip required"
  61. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.introduce,wechatGroupInvited.introduce.tip"/>">
  62. <s:message code="wechatGroupInvited.introduce"/><span class="star"> *</span></label>
  63. </div>
  64. <div class="controls">
  65. <form:textarea path="introduce" id="jform_introduce" style="width:800px;height:300px;visibility:hidden;"/>
  66. <!-- <textarea style="width:800px;height:300px;visibility:hidden;" name="introduceStr" -->
  67. <!-- id="jform_introduce" ></textarea> -->
  68. </div>
  69. </div>
  70. <div class="control-group">
  71. <div class="control-label">
  72. <label id="jform_addGroupUrl-lbl" for="jform_addGroupUrl" class="hasTooltip required"
  73. title="<sg:message code="TIP_TITLE" ref="wechatGroupInvited.addGroupUrl,wechatGroupInvited.addGroupUrl.tip"/>">
  74. <s:message code="wechatGroupInvited.addGroupUrl"/><span class="star"> *</span></label>
  75. </div>
  76. <div class="controls">
  77. <form:input path="addGroupUrl" id="jform_addGroupUrl" class="required" size="30"
  78. required="required" aria-required="true" onlyread="true"/>
  79. </div>
  80. </div>
  81. </fieldset>
  82. <input type="hidden" name="task" value="" />
  83. <script type="text/javascript">
  84. KindEditor.ready(function(K) {
  85. var editor = K.editor({
  86. cssPath : '/js/kindeditor-4.1.10/plugins/code/prettify.css',
  87. uploadJson : '/js/kindeditor-4.1.10/jsp/upload_json.jsp',
  88. fileManagerJson : '/js/kindeditor-4.1.10/jsp/file_manager_json.jsp',
  89. allowFileManager : true,
  90. allowFileManager : true
  91. });
  92. K('#upload').click(function() {
  93. editor.loadPlugin('image', function() {
  94. editor.plugin.imageDialog({
  95. showRemote : false,
  96. imageUrl : K('#jform_topImgUrl-lbl').val(),
  97. clickFn : function(url, title, width, height, border, align) {
  98. K('#jform_topImgUrl').val(url);
  99. editor.hideDialog();
  100. }
  101. });
  102. });
  103. });
  104. K('#upload_1').click(function() {
  105. editor.loadPlugin('image', function() {
  106. editor.plugin.imageDialog({
  107. showRemote : false,
  108. imageUrl : K('#jform_headImgUrl-lbl').val(),
  109. clickFn : function(url, title, width, height, border, align) {
  110. K('#jform_headImgUrl').val(url);
  111. editor.hideDialog();
  112. }
  113. });
  114. });
  115. });
  116. K('#upload_2').click(function() {
  117. editor.loadPlugin('media', function() {
  118. editor.plugin.imageDialog({
  119. showRemote : false,
  120. imageUrl : K('#jform_voiceUrl-lbl').val(),
  121. clickFn : function(url, title, width, height, border, align) {
  122. K('#jform_voiceUrl').val(url);
  123. editor.hideDialog();
  124. }
  125. });
  126. });
  127. });
  128. // 关闭过滤模式,保留所有标签
  129. //KindEditor.options.filterMode = false;
  130. // window.editor = K.create('#jform_introduce');
  131. var options = {
  132. cssPath : '/js/kindeditor-4.1.10/plugins/code/prettify.css',
  133. uploadJson : '/js/kindeditor-4.1.10/jsp/upload_json.jsp',
  134. fileManagerJson : '/js/kindeditor-4.1.10/jsp/file_manager_json.jsp',
  135. allowFileManager : true,
  136. allowFileManager : true
  137. };
  138. var editor = K.create('textarea[name="introduce"]',options);
  139. // 取得HTML内容
  140. html = editor.html();
  141. // 同步数据后可以直接取得textarea的value
  142. editor.sync();
  143. html = document.getElementById('jform_introduce').value; // 原生API
  144. html = K('#jform_introduce').val(); // KindEditor Node API
  145. html = $('#jform_introduce').val(); // jQuery
  146. // 设置HTML内容
  147. editor.html('');
  148. });
  149. </script>
  150. </form:form>

4、效果:




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/227841
推荐阅读
相关标签
  

闽ICP备14008679号