百度UEditor上传图片-再再总结一次
本周,CSDN有个网友遇到了百度UEditor上传问题,最后商定付50元钱,我帮他解决这个问题。
他最初想自己搞定这个问题,结果搞了好多次,好几天,还是没能解决。
2015年1月17日8:25~2015年1月18日00:24,4个小时终于搞定了这个问题。
1.总的感悟
本来预计1个小时,就能解决的,结果硬是花费了4个小时,挺无奈的。 虽说是帮客户解决一个问题,但实际上一个问题相关的问题,非常多。另外,就是解决这个问题,不是普通的咨询,已经参与到写代码、单步跟踪、QQ语音、QQ远程协助了。
最让人郁闷的是,远程协助,非常卡,太难受了。一个操作,要等好几秒,客户的网络不给力,难道是QQ的服务不行么。
2.解决百度UEditor图片上传的诸多问题和周边问题
2.1 config.json找不到。
找不到,就是UEditor根据url,在某个目录下,没有找到config.json文件。
解决这个问题,需要下载UEditor的java源码,看看怎么获得config文件的。
百度UEditor比较坑的地方是,根据URL获得config文件,然后图片存储的位置竟然也是根据这个url来获得的。也就是说,配置文件中的url有2个作用,不是单一的。
2.2概念混淆。
这个客户还没有毕业,刚刚实习,感觉经验很欠缺。
百度UEditor的JS和JSP请求,它们是2套不同的响应规则。一个是静态资源,另外一个是动态请求。
2.3config.json可以放到webapp项目的外面,比如C://。
这个时候,需要手动修改rootPath。
2.4UEditor的config.js中的获得config.json的url,可以是个JSP,也可以是.action等动态请求。
官网的默认例子是,JSP的,它假定了模版用的是JSP,而不是Freemarker。
而实际项目中,可能用的是Freemarker,这个时候,也需要配置JSP的视图解析器。
2.5通过写Controller, 用动态请求获得config.json这个文件,最终图片上传失败。
提示stream为null。
这个问题,之前总结过了,我们在项目中配置了Sprring上传大小。
spring的上传和百度UEditor的上传,起了冲突,导致文件找不到。
2.6放弃动态请求响应,而使用JSP方式响应。
提示找不到controller.jsp,路径明明是正确的。
最后,和自己的本地进行对比,排除了很多情况,才找到原因。
这让我很有疑问,如果/不会匹配到*.jsp,那么是不是*.jpg之类的静态文件也不会匹配到(不进入DispatcherServlet),但是事实上要访问静态文件还要加<mvc:resources location="/img/" mapping="/img/**"/>来避开匹配
参考:http://zhidao.baidu.com/link?url=jI3AOESn67AVpalSb7kG0ZUJ37hjeSPyW024VL4mK2YoGtv2IBFU7VUemQM85PLnv0dhVdcL82roCBAC0ggAwb5_izsc91w4MkuScIvK3hu
客户配的是/*,SpringMVC拦截了JSP请求,但作为Action响应,找不到就404了,最后改成/。
2.7图片上传成功了,但是无法回显。
UEditor后端保存图片到目标位置之后,返回前端一个url。前端根据url,去取图片,取不到。
图片保存在项目的外面,比如C:/img,前端请求不可能直接访问到,需要做映射。
2.8做了映射,图片仍然找不到。
后端回显的url,不带工程名,比如是/imgs/a.jpg。
但是前端正常访问需要带项目名称,比如ssh。
一种解决办法是,在后端获得url之后,或者前端获得url时,手动加上项目名称,使得图片的url有项目名称,比如
http://a.com/ssh/img/a.jpg。
另外一种办法,是为了方便,直接把Tomcat部署到根目录下,访问路径不带项目名称,这样就避免了上述问题。
2.9Eclipse中部署Tomcat到根目录,需要手动修改Context Path。
正解: 右键单击项目名称 --> Properties --> Web Project Settings --> 把 “Context root” 改成 “/”
非正解:右键点击项目名--Properties--Tomcat--General,将Context name框中值修改为:/
不同网友给出的答案不一样,可能会版本 之类的因素有关系。
参考资料: http://blog.snsgou.com/post-593.html
http://blog.csdn.net/sasoritattoo/article/details/22790297;
2.10单个图片上传成功之后,多个图片无法上传。
根据浏览器控制台,发现是CSS找不到。
这个问题,最终没有亲自去解决,告诉了客户原因,让他自己去分析并解决。
因为最麻烦的单个图片上传的整个逻辑、全部流程debug、所有问题都解决了。
3.其它一些感受
挣点外快很难啊,一方面是一般人不愿意付费,另一方面别人愿意付费的时候,多是比较棘手的问题。100元钱,觉得太多。
说实话,如果只是从挣钱的角度,绝对是划不来的。因为很多客户的问题,都是相对麻烦的,而且你没有上下文环境,通过远程debug,解决问题的效率比较低,远远没有本地调试方便。另外,找你帮忙解决问题的客户,多是水平和经验不如你的人,交流起来比较困难,经验完全不对等,你说的话,客户理解比较慢。
之所以,坚持做这种事,是因为可以获得金钱之外的好处,比如提升自己解决问题的能力,接触更多的人,也可以提高自己的影响力。说不定,还有机会结识几个好友。
百度UEditor上传图片-再再总结一次的更多相关文章
- 百度UEditor上传图片-再总结一次
晚上,在继续开发BriefCMS,把百度UEditor上传图片的问题,给解决了,终于解决了. 公司极简版CMS.BriefCMS.个人官网,最近2个月,与百度UEditor厮杀了好久.最值得吐槽的,就 ...
- 百度ueditor上传图片时如何设置默认宽高度
百度ueditor上传图片时如何设置默认宽高度 一.总结 一句话总结:直接css或者js里面限制一下就好,可以用html全局限制一下图片的最大高度 直接css或者js里面限制一下就好,可以用html全 ...
- 百度ueditor 上传图片后如何设置样式
最近项目中遇到一个问题,UEditor上传图片后,在内容展示会修改图片样式.但是表情也是img标签,所以全局修改是有问题的, 所以只能着手修改一下插件的代码. 首先找到图片上传的服务器段文件.这里主要 ...
- 关于 百度 Ueditor 上传图片时 打开文件夹的延迟问题
在使用 ueditor 开发时, 作为一个web文本编辑器使用时. 当点击上传图片时, 文件夹要延迟好久才能打开. 解决: 针对多图片上传, 将/ueditor/dialogs/image/image ...
- 百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源
个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配 ...
- 在linux下使用百度ueditor编辑器上传图片
百度ueditor编辑器虽然强大,但是也有不足的地方.如果对ueditor流程不是很熟悉可以说走的弯路比较多,费力不讨好.下面呢,就是要解决ueditor遇到的问题. 用ueditor上传图片遇到的问 ...
- 解决百度 ueditor v1.4.3 编辑器上传图片失真的bug?
项目中,用到百度ueditor编辑器,发现,上传大一点的图片,图片会失真,刚开始还以为是PHP端做了图片压缩,仔细看配置说明,发现是编辑器自带有个自动压缩图片的功能,可恶的是,压缩后的图片失真了! 决 ...
- UEditor上传图片到七牛云储存(java)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- UEditor上传图片到七牛云储存(c#)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
随机推荐
- Day1:变量
一.变量用来干嘛的 用来存东西的,方便后面调用 二.如何定义变量 name = "Hiuhung Wan" 变量名 = 值,一个等号是赋值号,右边的值赋值给左边 三.变量的一些用法 ...
- Loadrunner--基准测试的两种方法
2 练习基准测试方法1 2.1 问题 为登录业务设计场景. 2.2 方案 在控制台中使用循环多次的方式执行场景.(多次数) 2.3 步骤 实现此案例需要执行以下步骤: 步骤一: 1.打开控制台,如下图 ...
- MySQL字符编码问题,Incorrect string value
MySQL上插入汉字时报错例如以下.详细见后面分析. Incorrect string value: '\xD0\xC2\xC8A\xBEW' for column 'ctnr' at row 1 M ...
- Android 最火的高速开发框架AndroidAnnotations使用具体解释
Android 最火的高速开发框架androidannotations配置具体解释文章中有eclipse配置步骤.Android 最火高速开发框架AndroidAnnotations简介文章中的简介. ...
- 零基础学python-2.3 凝视
在python里面,使用"#"号表示凝视的開始,一整行到结束就是凝视,他的主要作用提示这段代码到底有什么用处 print("---------欢迎来到猜数字的地方.请開始 ...
- js课程 5-13 js事件绑定和鼠标事件注意事项有哪些
js课程 5-13 js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...
- 8.5 Android灯光系统_源码分析_通知灯
参考文章(应用程序举例)how to use the LED with Android phonehttp://androidblogger.blogspot.jp/2009/09/tutorial- ...
- ASP.NET配置文件里经常使用到的节点信息
web.config文件是一个XML文件,是以<confirguration>为根结点展开的. 上一面从宏观上解说了一下有关配置的文件的内容,以下是一些有关于配置文件经常使用的操作. ...
- swift项目第六天:中间发布按钮的封装以及监听点击事件
import UIKit /* 总结:1:给UIButton写分类,新建文件swiftFile,一般为了区分起名字都是名字-Extension,要想调用UI控件需要导入 import UIKit框架, ...
- Dll的链接使用细节
关于Dll Dll.Exe 都是PE格式的二进制文件. Dll相当于Linux操作系统下的so文件 1 基地址(Base Address)和相对地址(RelativeVirtual Address) ...