jfinal æ´åç¾åº¦ç¼è¾å¨ueditor
å æ¥å¼ ææå¾
ä¸ï¼åå¤å·¥ä½æå»ºå¥½çjfinal 项ç®ï¼ç¾åº¦ç¼è¾å¨å®ç½ä¸è½½ueditoråç¸åºçjavaå
äºï¼å°ueditorç¼è¾å¨å¤å¶ç²è´´å°é¡¹ç®ç®å½ä¸ï¼æçè·¯å¾æ¯/webapp/static/plugins/ueditor
ä¸ï¼å¨ueditor䏿¾å°config.jsonï¼å¤å¶å°ueditoræ ¹ç®å½ä¸
åï¼å¨ueditor䏿¾å°ueditor.config.jsï¼ä¿®æ¹éé¢ç代ç ï¼å°åæ¥çjspä¿®æ¹ä¸ºèªå·±åçcontroller请æ±è·¯å¾
// , serverUrl: URL + "jsp/controller.jsp" , serverUrl:serverURL+"/ueditor/index"
äºï¼å°ç¾åº¦æä¾çjavaç±»å¤å¶ç²è´´å°èªå·±ç项ç®ç®å½ä¸,ä¸éè¦ä¿®æ¹ä»»ä½å 容ï¼å®ç°ueditorç±»çæ¶åè¦ç¨å°
å ï¼å®ç°/ueditor/index,以䏿¯è¯¥controllerçå®ç°ç±»
import com.baidu.ueditor.ActionEnter; import com.jfinal.core.Controller; import com.jfinal.kit.Ret; import com.jfinal.plugin.activerecord.Record; import com.jfinal.upload.UploadFile; import com.weixun.cms.service.SiteService; import com.weixun.utils.ajax.AjaxMsg; import com.weixun.utils.file.FileUtils; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class UeditorController extends Controller { SiteService siteService = new SiteService(); /** * ueditoråå§åæ¹æ³ */ public void index() { // String outText = ActionEnter.me().exec(getRequest()); String rootPath = getRequest().getSession().getServletContext().getRealPath(File.separator+"static"+File.separator+"plugins"+File.separator); String outText = new ActionEnter(getRequest(),rootPath).exec(); renderHtml(outText); } /** * è·ååå¨å°æ°æ®åºä¸çè·¯å¾ * 没æåæå¨æå®è·¯å¾ * @return */ private Record getpath() { List<Record> records =siteService.findList(""); return records.get(0); } /** * å¾çä¸ä¼ æ¹æ³ */ public void upimage() { AjaxMsg ajaxMsg = new AjaxMsg(); Ret ret = null; try { //设置æä»¶ä¸ä¼ åç®å½ String path="uploads/images/"; //è·åä¸ä¼ çæä»¶ UploadFile upload = getFile("upfile",path); File file = upload.getFile(); //è·åæä»¶å String extName = FileUtils.getFileExt(file.getName()); //è·åæä»¶ä¸ä¼ çç¶ç®å½ String filePath = upload.getUploadPath(); //æ¶é´å½åæä»¶ String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + extName; //éå½å忥çæä»¶ file.renameTo(new File(filePath+fileName)); //éæ°ç»åæä»¶è·¯å¾ ip+æä»¶ç®å½+æä»¶å String fileUrl=getpath().getStr("site_domain")+File.separator+path+fileName; // ajaxMsg.setState("success"); // ajaxMsg.setMsg(fileUrl); ret = Ret.create("state", "SUCCESS") .set("url", fileUrl) .set("path",fileUrl) .set("original", "") .set("title",fileName); } catch (Exception e) { e.printStackTrace(); ajaxMsg.setState("fail"); } renderJson(ret); } /** * è§é¢ä¸ä¼ æ¹æ³ */ public void upvideo() { AjaxMsg ajaxMsg = new AjaxMsg(); Ret ret = null; try { //设置æä»¶ä¸ä¼ åç®å½ String path="uploads/videos/"; //è·åä¸ä¼ çæä»¶ UploadFile upload = getFile("upfile",path); File file = upload.getFile(); //è·åæä»¶å String extName = FileUtils.getFileExt(file.getName()); //è·åæä»¶ä¸ä¼ çç¶ç®å½ String filePath = upload.getUploadPath(); //æ¶é´å½åæä»¶ String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + extName; //éå½å忥çæä»¶ file.renameTo(new File(filePath+fileName)); //éæ°ç»åæä»¶è·¯å¾ ip+æä»¶ç®å½+æä»¶å String fileUrl=getpath().getStr("site_domain")+File.separator+path+fileName; // ajaxMsg.setState("success"); // ajaxMsg.setMsg(fileUrl); ret = Ret.create("state", "SUCCESS") .set("url", fileUrl) .set("path",fileUrl) .set("original", "") .set("title",fileName); } catch (Exception e) { e.printStackTrace(); ajaxMsg.setState("fail"); } renderJson(ret); } /** * æä»¶ä¸ä¼ æ¹æ³ */ public void upfile() { AjaxMsg ajaxMsg = new AjaxMsg(); Ret ret = null; try { //设置æä»¶ä¸ä¼ åç®å½ String path="uploads/files/"; //è·åä¸ä¼ çæä»¶ UploadFile upload = getFile("upfile",path); File file = upload.getFile(); //è·åæä»¶å String extName = FileUtils.getFileExt(file.getName()); //è·åæä»¶ä¸ä¼ çç¶ç®å½ String filePath = upload.getUploadPath(); //æ¶é´å½åæä»¶ String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + extName; //éå½å忥çæä»¶ file.renameTo(new File(filePath+fileName)); //éæ°ç»åæä»¶è·¯å¾ ip+æä»¶ç®å½+æä»¶å String fileUrl=getpath().getStr("site_domain")+File.separator+path+fileName; // ajaxMsg.setState("success"); // ajaxMsg.setMsg(fileUrl); ret = Ret.create("state", "SUCCESS") .set("url", fileUrl) .set("path",fileUrl) .set("original", "") .set("title",fileName); } catch (Exception e) { e.printStackTrace(); ajaxMsg.setState("fail"); } renderJson(ret); } /** * ueditorä¸ä¼ */ public void config(){ if ("config".equals(getPara("action"))) { render("/static/plugins/ueditor/config.json"); return; } UploadFile file = getFile("upfile"); String fileName = file.getFileName(); String[] typeArr = fileName.split("\\."); String orig = file.getOriginalFileName(); long size = file.getFile().length(); // String url = UploadOSSKit.uploadImage(file); String url=""; Ret ret = Ret.create("state", "SUCCESS") .set("url", url) .set("path",url) .set("original", orig) .set("type", "."+typeArr[1]) .set("size", size); renderJson(ret); } }
ä¸ï¼å¨jsp页é¢å¼å ¥ueditorï¼åå§ååæå®ä¸ä¼ æä»¶ï¼å¾çï¼è§é¢çæ¹æ³
<html> <head> <meta charset="UTF-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="format-detection" content="telephone=no"> <title>åå°ç®¡çç³»ç»</title> <% String path = request.getContextPath(); %> <% Date d = new Date();%> <% SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24å°æ¶å¶ %> <%String date = sdformat.format(d); %> <link rel="stylesheet" href="${basePath}/static/plugins/layui/css/layui.css" media="all"> <link rel="stylesheet" href="${basePath}/static/css/ztree/metro/ztree.css" media="all"> <%--ç¾åº¦ç¼è¾å¨éè¦å¼å ¥çjs--%> <script type="text/javascript" charset="utf-8" src="../../../static/plugins/ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="../../../static/plugins/ueditor/ueditor.all.js"> </script> <!--建议æå¨å å¨è¯è¨ï¼é¿å å¨ie䏿æ¶å 为å è½½è¯è¨å¤±è´¥å¯¼è´ç¼è¾å¨å 载失败--> <!--è¿éå è½½çè¯è¨æä»¶ä¼è¦çä½ å¨é 置项ç®éæ·»å çè¯è¨ç±»åï¼æ¯å¦ä½ å¨é 置项ç®éé ç½®çæ¯è±æï¼è¿éå è½½ç䏿ï¼é£æåå°±æ¯ä¸æ--> <script type="text/javascript" charset="utf-8" src="../../../static/plugins/ueditor/lang/zh-cn/zh-cn.js"></script> <style> .admin-main{ height: 900px; } .mainLeft{ float: left; } .mainRight{ float: left; } </style> </head> <body> <div class="admin-main"> <div class="mainLeft"> <form id="articleForm" method="post" class="layui-form" action=""> <input id="article_pk" name="article_pk" type="hidden" /> <div class="layui-form-item" style="margin-top:2%;"> <label class="layui-form-label">æ é¢</label> <div class="layui-input-inline"> <input id="article_title" name="article_title" lay-verify="required" autocomplete="off" placeholder="请è¾å ¥æ é¢" class="layui-input" type="text" /> </div> <label class="layui-form-label">å¾ç</label> <div class="layui-input-inline"> <img id="images" src="" width="190px" height="45px" title=""> </div> <label class="layui-form-label">å¾ç</label> <div class="layui-input-inline"> <input id="article_titleimg" name="article_titleimg" autocomplete="off" class="layui-input" type="hidden"/> <button type="button" class="layui-btn" id="file"> <i class="layui-icon"></i>ä¸ä¼ å¾ç </button> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">龿¥</label> <div class="layui-input-inline"> <input id="article_url" name="article_url" lay-verify="required" autocomplete="off" placeholder="请è¾å ¥é¾æ¥" class="layui-input" type="text" /> </div> <label class="layui-form-label">åææ¥æ</label> <div class="layui-input-inline"> <input value="" id="article_sendtime" name="article_sendtime" class="layui-input" > </div> </div> <div align="center"> <textarea id="editor" name="editor" style="margin-top:2%;padding:0;width:890px;height:650px;"></textarea> </div> </form> </div> <%--æ å½¢èå--%> <div class="mainRight"> <div align="center" class="layui-input-block" style="margin: 5% auto"> <button class="layui-btn layui-btn-small" align="center" id="edit">ä¿å</button> <%--<button class="layui-btn layui-btn-small" align="center" id="send">åå¸</button>--%> </div> <fieldset class="layui-elem-field layui-field-title"> <legend>èå</legend> </fieldset> <ul id="ztree" class="ztree" style="display: inline-block; width: 170px; height: 750px; padding: 10px; border: 1px solid #ddd; overflow: auto;"> </ul> </div> </div> </body> <script> /** * åå§åç¾åº¦ç¼è¾å¨ * * */ var ue = UE.getEditor('editor', { autoHeight:true, autoHeightEnabled: false,//æ¯å¦èªå¨é¿é« autoFloatEnabled: false,//æµ®å¨æ¯ç¦»æµè§å¨çé«åº¦ imageScaledEnable:true,//å¾çè½å¦èªå¨ç¼©æ¾ allowDivTransToP:false//æ¯å¦å®¹è®¸div转æ¢ä¸ºp æ ç¾ // enterTag : 'br' }); /** * 设置ç¾åº¦ç¼è¾å¨ä¸ä¼ action * * */ UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; UE.Editor.prototype.getActionUrl = function(action) { console.log("action"+action) if (action == 'uploadimage' || action == 'uploadscrawl' ) { return '<%=path%>/ueditor/upimage'; }else if (action == 'uploadvideo') { return '<%=path%>/ueditor/upvideo'; } else if (action == 'uploadfile') { return '<%=path%>/ueditor/upfile'; } else { return this._bkGetActionUrl.call(this, action); } }; </script>
éè¿ä»¥ä¸å 个æ¥éª¤ï¼jfinalä¸å°±æ´å好ç¾åº¦ç¼è¾å¨äºï¼ä»¥ä¸æ¯æä½¿ç¨jfinal éç¨å¤æ¨¡åçæ¹å¼å®ç°çä¸ä¸ªcms,以忴åäºshiro,ueditor,layui
å°å为ï¼https://gitee.com/live.cn/wxcms
转载äº:https://my.oschina.net/mayude/blog/1796637