ckeditor富文本编辑器

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, "");
    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值