1、点击FCKeditor上的插入图片时,从地址栏中知道,是访问的brower.html
2、brower.html使用了框架。左侧使用frmFolder.html,主工作区使用frmresourceslist.html。
在brower中调用了fckxml.js,这是一个AJAX的封装,用来向服务器发送Command.
3、服务器端通过portal-impl/com.liferay.portal.editor.fckeditor.**来响应。
具体来说:GetFoldersAndFilesCommand.execute 会通过工厂方式来产生一个CommandReceiver,共有三类Receiver, ImageCommandReceiver, DocumentCommandReceiver, PageCommandReceiver. 也就是说,可以插入三类资源,图片,文档,页面链接。
【注意】liferay 4.3.3时,ImageCommandReceiver, DocumentCommandRecievier的_getFolder方法有Bug,需要在开始时,将folderName进行UTF-8编码转换,否则不支持中文字符。smilingleo原创
4、在服务器端向客户端返回相应之后,客户端通过CallBack函数来进行内容处理,比如frmfolders.html中的GetFoldersCallBack,就是打开选中的Folder.

本文详细介绍了FCKeditor中图片及文档等资源的上传流程。从客户端的brower.html及其子页面如何与服务器交互,到服务器端如何响应这些请求并处理中文路径的问题。此外还特别提到了Liferay 4.3.3版本中ImageCommandReceiver存在的BUG及解决办法。
1万+

被折叠的 条评论
为什么被折叠?



