jFinal之BAE搭配ueditor图片上传、涂鸦、图片管理

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,功能齐全,使用广泛!

    其配置想对于kindEditor要复杂一些,主配置罗列在一个ueditor.config.js文件中!

//图片上传配置区
,imageUrl: URL + "uploadImg"             //图片上传提交地址
,imagePath:""                           //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
,imageFieldName:"upfile"                 //图片数据的key,若此处修改,需要在后台对应文件修改对应参数

//涂鸦图片配置区
,scrawlUrl: URL + "uploadScrawl"          //涂鸦上传地址
,scrawlPath:""                            //图片修正地址,同imagePath

//附件上传配置区
,fileUrl: URL + "uploadFile"              //附件上传提交地址
,filePath:""                              //附件修正地址,同imagePath
,fileFieldName:"upfile"                   //附件提交的表单名,若此处修改,需要在后台对应文件修改对应参数

//远程抓取配置区
,catchRemoteImageEnable:false               //是否开启远程图片抓取,默认开启

    本站只针文件配置部分进行了修改,将图片附件相关修正地址设置为空,因为后台返回的是全路径!

    UeditorController.java

// 上传图片
public void uploadImg() {
	// 选择保存目录
	String fetch = getPara("fetch");
	if (StringKit.notBlank(fetch)) {
		renderJavascript("updateSavePath( [\"" + BCSUtils.bucket + "\"] );");
		return;
	}
	// 临时目录
	String tmpfsPath = BaeEnv.getTmpfsPath();
	try {
		UploadFile file = getFile("upfile", tmpfsPath);
		String fileName = file.getFileName();
		boolean isFail = BCSUtils.checkFileType(fileName, true);
		if (isFail) {
			setAttr("state", "图片类型不支持!");
		} else {
			// 上传文件
			logger.error("上传文件");
			setAttr("url", BCSUtils.uploadWatermark(file.getFile(), fileName));
			setAttr("state", "SUCCESS");
			
		}
		setAttr("original", fileName);
	} catch (Exception e) {
		logger.error(e.getMessage());
		setAttr("state", "图片上传失败,请稍后重试!");
	}
	// "SUCCESS", "SUCCESS"
	setAttr("title", getPara("pictitle"));
	renderJson(new String[]{"original", "url", "title", "state"});
	// "{'original':'"+up.getOriginalName()+"','url':'"+up.getUrl()+"','title':'"+up.getTitle()+"','state':'"+up.getState()+"'}"
}

// 上传文件
public void uploadFile() {
	String tmpfsPath = BaeEnv.getTmpfsPath();
	UploadFile file = getFile("upfile", tmpfsPath);
	String fileName = file.getFileName();
	boolean isFail = BCSUtils.checkFileType(fileName, false);
	if (isFail) {
		setAttr("state", "文件类型不支持!");
	} else {
		try {
			setAttr("url", BCSUtils.upload(file.getFile(), fileName));
			setAttr("state", "SUCCESS");
		} catch (Exception e) {
			logger.error(e.getMessage());
			setAttr("state", "文件上传失败,请稍后重试!");
		}
	}
	setAttr("original", fileName);
	setAttr("fileType", BCSUtils.getFileType(fileName));
	renderJson(new String[]{"url", "fileType", "state", "original"});
	// {'url':'"+up.getUrl()+"','fileType':'"+up.getType()+"','state':'"+up.getState()+"','original':'"+up.getOriginalName()+"'}"
}

// 涂鸦上传
public void uploadScrawl() throws Exception {
	String tmpfsPath = BaeEnv.getTmpfsPath();
	String newName = System.currentTimeMillis() + ".jpg";
	// jfinal必须先getfile,
	try {
		//String action = getPara("action");
		//if (StringKit.notBlank(action) && action.equals("tmpImg"))
		UploadFile file = getFile("upfile", tmpfsPath, 1024 * 1024);
		String url = BCSUtils.upload(file.getFile(), newName);
		//<script>parent.ue_callback('" + up.getUrl() + "','" + up.getState() + "')</script>
		renderText("<script>parent.ue_callback('" + url + "','SUCCESS')</script>");
	} catch (Exception e) {
		logger.error(e.getMessage());
		String content = getPara("content");
		setAttr("url", BCSUtils.uploadBase64(content, newName));
		setAttr("state", "SUCCESS");
		renderJson(new String[]{"url", "state"});
		// {'url':'" + up.getUrl()+"',state:'"+up.getState()+"'}
	}
}

// 图片管理
public void imageManager() {
	List<String> list =BCSUtils.listObject(100);
	renderText(StringUtils.join(list, "ue_separate_ue"));
}

    BCSUtils.java本文件由于有200多行,就不列出来,你可以点击链接去我的osc git查看!

注意:ueditor.config.js不要使用CDN路径,会造成iframle跨域问题!

来个涂鸦,哈哈....

捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。