使用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;

}

 

}

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

posted @ 2012-01-04 11:52  爱开卷360  阅读(977)  评论(1编辑  收藏  举报