ckeditor富文本编辑器的具体使用步骤如下:
1.页面中引入js
<script src="ckeditor/ckeditor.js"></script>2.写存放ckeditor的富文本框
<div class="layui-form-item"> <label class="layui-form-label">内容:</label> <div class="layui-input-block" style="width: 826px;"> <textarea id="content" rows="10" cols="30" class="ckeditor" name="content" ></textarea> </div> </div>3.获取富文本框值的方式
$("#content").val(CKEDITOR.instances.content.getData());4.修改页面中给富文本框赋值的方式 定义一个接口:根据id去查询富文本框中的内容,然后把查询到的内容赋值给富文本框即可。
$(function(){ $("#content").val(getKnDetail()); }) function getKnDetail(){ var content; $.ajax({ type:'post', url:'getKnowLedgeDe', data:{knId:getUrlParam("knId")}, dataType:'json', async:false, success:function (data) { console.log(data) content=data[0].content; } }) return content; }5.富文本编辑器图片上传功能 (1)在ckeditor文件下的config.js中配置需要调用的图片上传接口。
CKEDITOR.editorConfig = function( config ) { // Define changes to default configuration here. For example: // config.language = 'fr'; // config.uiColor = '#AADC6E'; config.filebrowserImageUploadUrl = "../hnxf-video/ckeditorUpload1"; };(2)开发图片上传工具类以及接口。
工具类FileUtil
package com.hnxf.video.hunanxfv.util; import com.hnxf.video.hunanxfv.Service.FireMiniService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.UUID; import java.util.regex.Pattern; public class FireUtil { @Autowired private FireMiniService fireMiniService; public static String getFileType(String filename){ if(filename.endsWith(".jpg") || filename.endsWith(".jepg")){ return ".jpg"; }else if(filename.endsWith(".png") || filename.endsWith(".PNG")){ return ".png"; }else if(filename.endsWith(".mp4") ) { return ".mp4"; }else if(filename.endsWith(".mp3") ) { return ".mp3"; }else{ return "application/octet-stream"; } } /* * 判断是否为整数 * @param str 传入的字符串 * @return 是整数返回true,否则返回false */ public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } private static List<String> fileTypes = new ArrayList<String>(); static { fileTypes.add(".jpg"); fileTypes.add(".jpeg"); fileTypes.add(".bmp"); fileTypes.add(".gif"); fileTypes.add(".png"); } /** * 图片上传 * */ public static String upload(HttpServletRequest request, String DirectoryName) throws IllegalStateException, IOException { // 创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); // 图片名称 String fileName = null; // 判断 request 是否有文件上传,即多部分请求 if (multipartResolver.isMultipart(request)) { // 转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { // 取得上传文件 MultipartFile file = multiRequest.getFile(iter.next()); if (file != null) { // 取得当前上传文件的文件名称 String myFileName = file.getOriginalFilename(); // 如果名称不为“”,说明该文件存在,否则说明该文件不存在 if (myFileName.trim() != "") { // 获得图片的原始名称 String originalFilename = file.getOriginalFilename(); // 获得图片后缀名称,如果后缀不为图片格式,则不上传 String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase(); if (!fileTypes.contains(suffix)) { continue; } // 如果路径不存在,则创建该路径 // File realPathDirectory = new File(realPath); // if (realPathDirectory == null || !realPathDirectory.exists()) { // realPathDirectory.mkdirs(); // } // 重命名上传后的文件名 111112323.jpg fileName = UUID.randomUUID().toString() + suffix; // 获得上传路径的绝对路径地址(/upload)--> String realPath="/home/picture/images/firemini/" + fileName; System.out.println(realPath); // 定义上传路径 .../upload/111112323.jpg File uploadFile = new File(realPath); System.out.println(uploadFile); file.transferTo(uploadFile); } } } } return fileName; } // ckeditor文件上传功能,回调,传回图片路径,实现预览效果。 public static void ckeditor(HttpServletRequest request, HttpServletResponse response, String DirectoryName) throws IOException { String fileName = upload(request, DirectoryName); // 结合ckeditor功能 // imageContextPath为图片在服务器地址,如upload/123.jpg,非绝对路径 String imageContextPath = "https://119hunan.top/images/firemini/" + fileName; response.setContentType("text/html;charset=UTF-8"); String callback = request.getParameter("CKEditorFuncNum"); PrintWriter out = response.getWriter(); out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + imageContextPath + "',''" + ")"); out.println("</script>"); out.flush(); out.close(); } }接口
//上传图片 @RequestMapping("/ckeditorUpload1") public void ckeditorUpload(HttpServletRequest request, HttpServletResponse response) throws Exception { FileUtil.ckeditor(request, response, ""); }