jfinal 嵌套百度编辑器 后台配置失败

@jfinal 下载 jfinal_demo2.2 然后下载百度编辑器 将编辑器页面按照官方文档弄了一下 页面的按钮和样式都出来了  但是点击上传图片的时候没有反应 

blob.png

blob.png

点击多张图片上传按钮  提示 后端配置失败 审查元素 报错  提交到  百度编辑器的controller.jsp页面时报错:

blob.png

blob.png

blob.png


此问题已经困扰了 我许久了 忘指教 @jfinal


  1. controller.jsp 相关的jar 包没有正常加载  但是我的controller.jsp 页面没有报错 也没有重复导的jar包,也没有低版本的jar包

  2. 主要问题出现在 初始化按钮的时候  上传相关的文件没有正确配置和加载 

  3. 请求已经正确的找到了controller.jsp 但是在controller.jsp 处理的时候报错 

  4. 初始化报错  这个请求 500blob.png



评论区

JFinal

2016-11-17 12:06

你刚刚发的这篇贴子,贴的这张截图就是用的 jfinal 之下的 ueditor,这个问题本质上来说与 jfinal 毫无关系,只需要完全按照料 ueditor 的官方文档进行配置即可:http://fex.baidu.com/ueditor/#server-deploy , 尤其要注意一下 "后端配置说明"

当然,既然你问到这个问题,我再告诉你一种完全不需要 ueditor 所提供的 controller.js 与相关 jar 包的集成方式:
1:创建一个 FileUploadController,配置路由为 "/common/upload"

2:在 FileUploadController 中创建一个 public void index() 方法,添加如下几行代码:
public void index() {
if ("config".equals(getPara("action"))) {
// 这里千万注意 "config.json" 文件前方的目录一定要正确
render("/assets/ueditor/jsp/config.json");
return;
}

// "upfile" 来自 config.json 中的 imageFieldName 配置项
UpoadFile uf = getFile("upfile");
}

3:将 ueditor.config.js 这个配置文件中原来的
serverUrl: URL + "jsp/controller.jsp" 改为如下配置:
serverUrl: "/common/upload"
也就是配置成指向前面建立的 FileUploadController 的 index() 方法路由,相当于让 FileUploadController.index() 来接管 ueditor 原来用 controller.jsp 处理上传请求的功能

4:经过这种改造后,jfinal 接管了文件上传请求,配置文件"ueditor/jsp/config.json"中的 "imageFieldName" 后面的配置可以用于 getFile(...) 的参数,当然你也可以不用这个参数,直接用不带参的 getFile() 来获取上传文件

此法可以不需要引入 ueditor 要求的那几个与文件上传有前端的 jar 包,记得搞定后回社区分享频道分享出来,有很多朋友需要

JFinal

2016-11-17 12:13

这里补充一点,如下这几行代码非常重要:
if ("config".equals(getPara("action"))) {
// 这里千万注意 "config.json" 文件前方的目录一定要正确
render("/assets/ueditor/jsp/config.json");
return;
}

ueditor 编辑器在加载的时候,会向后端的发起一个请求,参数名为 action,参数值为 "config",意思是想得到服务端配置文件: "config.json",此时你必须要 render(yourPath/config.json) 这个给 ueditor,否则它无法进行初始化,也无法知道文件上传到什么地方,等等的一切服务端配置它都将不知道

zempty

2016-11-17 12:44

yuan_123

2016-11-17 13:39

@JFinal 再问一句 当我接收完图片到本地的时候 我应当返回json 数据吧 但是返回什么样的格式呢 现在图片能传上去但是页面显示上传错误 应该是没有返回数据造成的

JFinal

2016-11-17 14:04

@yuan_123 少说一点就出问题了,以下是 ueditor 要求的返回值格式,其实只要用用它的 demo就可以试出来:
ueditor 要求返回 json 格式数据,例如:
{"state": "SUCCESS",
"title": "1465008328293017063.png",
"original": "2222.png",
"type": ".png",
"url": "/upload/image/1465008328293017063.png",
"size": "185984" }

所以在 jfinal 之下,上传正确的返回例子如下:
Ret ret = Ret.create("state", "SUCCESS")
.put("url", "/upload/image/20160604/1465008328293017063.png")
.put("title", "1465008328293017063.png")
.put("original", uf.getOriginalFileName())
.put("type", ".jpg") // 这里根据实际扩展名去写
.put("size", fileSize);
renderJson(ret.getData());

上传错误的返回例子如下:
Ret ret = Ret.create("state", "错误提示消息在此");
renderJson(ret.getData());

JFinal

2016-11-17 15:58

@zempty 有用的贴子,可以先点击右下角的五角星搜藏一下,便于后续查看

热门反馈

扫码入社