晚上,在继续开发BriefCMS,把百度UEditor上传图片的问题,给解决了,终于解决了。
公司极简版CMS、BriefCMS、个人官网,最近2个月,与百度UEditor厮杀了好久。最值得吐槽的,就是百度UEditor的上传图片功能,感觉不够简便。
百度UEditor官方,在JSP场景下的应用,太简单了。对我以前写的项目来说,还可以。
对于最近的3个项目来说,就不灵活了。
因为,图片存储、controller.jsp都不是存储在webapps目录下,不能直接访问,都需要做映射。
无论是JSP、图片等静态资源访问、config.json配置文件、Action等动态请求,关键的关键就是:后端服务器程序要能够响应。
JSP访问,后端响应;Action动态请求,后端照旧响应。这就是最简单的说法。
再总结一次百度UEditor的用法:
1. 在HTML、JSP、FTL等视图文件中,引入UEditor的JS和CSS,比如:
<script type="text/javascript" charset="utf-8"
src="${base}/theme/default/static/framework/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8"
src="${base}/theme/default/static/framework/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript" charset="utf-8"
src="${base}/theme/default/static/framework/ueditor/lang/zh-cn/zh-cn.js"></script>
2.ueditor.config.js中配置,获得config.json等图片上传等相关的URL,比如:
, serverUrl: URL + "../../../ueditor/controller.jsp"
JSP也好,动态Action请求也好,后端响应它,返回给正确的config.json配置文件。
最坑的就是获得config.json这个文件,它的路径和config.js中的配置有严重的依赖关系。
如果想把图片存储到 非Webapp等硬盘目录,需要手动修改controller.jsp的rootPath。
3. 响应图片。
不再Webapp目录下的,记得做映射。
灵丹妙药: 遇到问题的时候,根据错误提示,经过编码的,翻译成中文,就知道为什么了。实在不行,就debug程序,也不难,一般都是获得config.json的路径不对。debug一次,你就了解实际路径的生成规则了,然后你什么就懂了。
原文首发:http://fansunion.cn/article/detail/552.html