zoukankan      html  css  js  c++  java
  • 使用kindeditor 实现 Play FrameWork的html编辑器

    本文主要目的是用kindeditor 实现图片上传功能。

    第一步:在view中加载kindeditor ,指定kindeditor的配置:

    <script type="text/javascript">

    KE.show({

    id : 'content1',

    //重点是下面这句

    imageUploadJson : '@{Journals.uploadjson()}', 

    fileManagerJson : 'http://www.cnblogs.com/jsp/file_manager_json.jsp',

    allowFileManager : true,

    afterCreate : function(id) {

    KE.event.ctrl(document, 13, function() {

    KE.util.setData(id);

    document.forms['form'].submit();

    });

    KE.event.ctrl(KE.g[id].iframeDoc, 13, function() {

    KE.util.setData(id);

    document.forms['form'].submit();

    });

    }

    });

    </script>

    第二步:编写Controller:uploadjson方法:

    public static void uploadjson(File imgFile) {

    //文件保存目录路径

    String savePath =  Play.applicationPath.toString()+Play.configuration.getProperty("newsImg.savePath", "false");

    //文件保存目录URL

    String saveUrl  =  Play.configuration.getProperty("newsImg.savePath", "false");

    //System.out.println("Play.configuration.getProperty(newsImg.fileTypes):"+Play.configuration.getProperty("newsImg.fileTypes", "false"));

    //定义允许上传的文件扩展名

    String[] fileTypes = (Play.configuration.getProperty("newsImg.fileTypes", "false")).trim().toString().split(",");

    //最大文件大小

    long maxSize = 1000000;

    if (imgFile != null) {

    //检查目录

    File uploadDir = new File(savePath);

    if(!uploadDir.isDirectory()){

    renderJSON(getError("上传目录不存在。"));

    return;

    }

    //检查目录写权限

    if(!uploadDir.canWrite()){

    renderJSON(getError("上传目录没有写权限。"));

    return;

    }

    //创建文件夹

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

    String ymd = sdf.format(new Date());

    savePath += ymd + "/";

    saveUrl += ymd + "/";

    File dirFile = new File(savePath);

    if (!dirFile.exists()) {

    dirFile.mkdirs();

    }

    //检查文件大小

    if(imgFile.length() > maxSize){

    renderJSON(getError("上传文件大小超过限制。"));

    return;

    }

    //检查扩展名

    String fileExt = imgFile.getName().substring(imgFile.getName().lastIndexOf(".") + 1).toLowerCase();

    //System.out.println("fileExt:"+fileExt);

    if(!Arrays.<String>asList(fileTypes).contains(fileExt)){

    renderJSON(getError("上传文件扩展名是不允许的扩展名。"));

    return;

    }

    //String ext = imgFile.getName().substring(

    //imgFile.getName().lastIndexOf("."));

    //String fileName = RandomStringUtils.random(8, true, true) + ext;

    SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");

    String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;

    File f = new File(savePath,newFileName);

    //System.out.println("f.getPath()----:" + f.getPath());

    try {

    //System.out

    //.println("imgFile.renameTo(f):" + imgFile.renameTo(f));

    JSONObject obj = new JSONObject();

    obj.put("error", 0);

    obj.put("url", saveUrl + newFileName);

    renderText(obj.toJSONString().toString());

    return;

    } catch (Exception e) {

    e.printStackTrace();

    renderJSON(getError("上传失败"));

    return;

    }

    }else{

    renderJSON(getError("请选择文件。"));

    return;

    }

    }

    第三步:测试吧。就这些了,不用详细介绍了。

  • 相关阅读:
    数组和字符串的一些常用方法
    函数记忆
    实现一个clone函数,对javascript中的5种数据类型进行值复制
    visual studio 2010问题修复
    url模块、path模块、querystring模块
    静态资源文件使用
    路由表机制
    解决Node.js服务器启动后在浏览器访问时中文显示乱码
    Node.js 初步了解
    Node.js 简介与安装
  • 原文地址:https://www.cnblogs.com/ibook360/p/2311816.html
Copyright © 2011-2022 走看看