使用百度编辑器上传附件后,附件的图标,引用的是绝对URL,一下子完整暴露了编辑器所在目录,甚至后台入口也完全暴露了:
要解决这个问题,有两个方法:
前提是要把ueditor\dialogs\attachment\fileTypeImages下面的图标都放到前台images\fileTypeImages目录下。
方法一、在你的表单处理程序中替换掉这个地址。
例如,你的后台目录名为admin,那么在你的表单处理程序中,增加下面一行:
//处理百度编辑器上传附件类型图片路径暴露后台URL的BUG //该BUG是编辑器自身BUG $content=str_replace("admin/ueditor/dialogs/attachment/","images/",$content);
这样再提交的数据,前台路径就完美了:
http://你的域名/images/fileTypeImages/icon_rar.gif
方法二、修改编辑器的ueditor.all.min.js文件,这个文件的换行和空格都被删除,可读性很差。ctrl+f,找到这么一行代码,大概在548行:
var k=a+("/"==a.substr(a.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/"
这个地址读取的是编辑器所在路径的绝对路径(非常不好!使用绝对路径会带来一个问题,如果未来网站换域名了,或者网站路径变了,所有正文中的附件图标都不能显示!),把它改成你的相对路径:
var k="images/fileTypeImages/"
注意:
1、images前面不要加/(加/表示根目录下),这是为了便于网站迁移,如果以后网站目录结构发生变化,而相对路径的地址可以适合任意目录结构。
2、由于编辑器在后台,所以,在你后台目录下的images/fileTypeImages/里也放上附件的图标。否则在后台编辑器中看不到附件图标,那样影响小编的用户体验。如果你不介意,那就不放。
关联知识: