jfinal,KindEditor

 KindEditor.ready(function(K) {
        K.each({
            'plug-align' : {
                name : '对齐方式',
                method : {
                    'justifyleft' : '左对齐',
                    'justifycenter' : '居中对齐',
                    'justifyright' : '右对齐'
                }
            },
            'plug-order' : {
                name : '编号',
                method : {
                    'insertorderedlist' : '数字编号',
                    'insertunorderedlist' : '项目编号'
                }
            },
            'plug-indent' : {
                name : '缩进',
                method : {
                    'indent' : '向右缩进',
                    'outdent' : '向左缩进'
                }
            }
        },function( pluginName, pluginData ){
            var lang = {};
            lang[pluginName] = pluginData.name;
            KindEditor.lang( lang );
            KindEditor.plugin( pluginName, function(K) {
                var self = this;
                self.clickToolbar( pluginName, function() {
                    var menu = self.createMenu({
                        name : pluginName,
                        width : pluginData.width || 100
                    });
                    K.each( pluginData.method, function( i, v ){
                        menu.addItem({
                            title : v,
                            checked : false,
                            iconClass : pluginName+'-'+i,
                            click : function() {
                                self.exec(i).hideMenu();
                            }
                        });
                    })
                });
            });
        });
        editor =  K.create('#nr', {
            cssPath : '${ctx}/static/kindeditor/plugins/code/prettify.css',
            uploadJson : '${ctx}/upload/upload/',
            fileManagerJson : '${ctx}/upload/manageImg',
            allowFileManager : true,
            themeType : 'default',
            filterMode : true,
            items :[
                'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'paste',
                'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
                'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent',
                'clearhtml', 'quickformat', 'selectall', '|',
                'formatblock', 'fontname', 'fontsize', '|','/', 'forecolor', 'hilitecolor', 'bold',
                'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|',
                'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
                'anchor', 'link', 'unlink', '|', '|', 'image', 'multiimage'
            ] ,
            afterBlur:function(){this.sync(); }
        });

    });

后台代码

import com.jfinal.core.Controller;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Random;

import org.apache.commons.io.FileUtils;



import com.alibaba.fastjson.JSON;
import com.jfinal.core.JFinal;
import com.jfinal.render.JsonRender;
import com.jfinal.upload.UploadFile;
/**
 * Created with IntelliJ IDEA.
 * User: xiaojing
 * Date: 14-8-2
 * Time: 下午4:40
 * To change this template use File | Settings | File Templates.
 */
public class UploadController extends Controller {

    /**
     * 文件上传
     * @throws Exception
     */
    public void upload() throws Exception{
        //定义允许上传的文件扩展名
        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,pdf");

        Map  result = new HashMap();
        String dirName = getPara("dir")==null?"image":getPara("dir");
        String realpath = getRequest().getRealPath("/uploadfile");
        UploadFile uf= getFile("imgFile",realpath);
        String affix_id = "";
        String affix_name = "";
        if(uf!=null){
            affix_name = uf.getFile().getName();
            File file = uf.getFile();
            //检查扩展名
            String fileExt = affix_name.substring(affix_name.lastIndexOf(".") + 1).toLowerCase();
            if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){
                result.put("error", 1);
                result.put("message", "上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。");
                file.delete();
            }else{
                SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                affix_id = df.format(new Date()) + "_" + new Random().nextInt(1000)+"."+fileExt;
                File savefile = new File(new File(realpath),affix_id);
                FileUtils.copyFile(file, savefile);
                if(file.exists()){
                    file.delete();
                }
                result.put("error", 0);
                result.put("url", JFinal.me().getContextPath()+"/uploadfile/"+affix_id);
            }
        }else{
            result.put("error", 1);
            result.put("message", "请选择文件");
        }

        render(new JsonRender(JSON.toJSONString(result)).forIE());
    }
    /**
     * 文件管理
     */
    public void manageImg(){
        String[] fileTypes = new String[]{"gif", "jpg", "jpeg", "png", "bmp"};
        String currentPath = getRequest().getRealPath("/uploadfile")+"/";
        File currentPathFile = new File(currentPath);
        List<Hashtable> fileList = new ArrayList<Hashtable>();
        if(currentPathFile.listFiles() != null) {
            for (File file : currentPathFile.listFiles()) {
                Hashtable<String, Object> hash = new Hashtable<String, Object>();
                String fileName = file.getName();
                if(file.isDirectory()) {
                    hash.put("is_dir", true);
                    hash.put("has_file", (file.listFiles() != null));
                    hash.put("filesize", 0L);
                    hash.put("is_photo", false);
                    hash.put("filetype", "");
                } else if(file.isFile()){
                    String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
                    hash.put("is_dir", false);
                    hash.put("has_file", false);
                    hash.put("filesize", file.length());
                    hash.put("is_photo", Arrays.<String>asList(fileTypes).contains(fileExt));
                    hash.put("filetype", fileExt);
                }
                hash.put("filename", fileName);
                hash.put("datetime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(file.lastModified()));
                fileList.add(hash);
            }
        }
        //排序形式,name or size or type
        String order = getPara("order") != null ? getPara("order").toLowerCase() : "name";


        Map result = new HashMap();
        result.put("moveup_dir_path", "");
        result.put("current_dir_path","");
        result.put("current_url", JFinal.me().getContextPath()+"/uploadfile/");
        result.put("total_count", fileList.size());
        result.put("file_list", fileList);
        System.out.println(JSON.toJSONString(result));
        renderJson(JSON.toJSONString(result));
    }
}


你可能感兴趣的:(jFinal,kindeditor)