PHP版修改百度Ueditor图片/文件上传目录的方法

编辑器版本:1.4.3.3 PHP版
首先进行分析:
进入编辑器的目录找到一个叫controller.php的文件:编辑器根目录\php\controller.php,打开进行查看。
1.png
发现其筛选并引入了一个带有“upload”字样的php文件,于是顺藤摸瓜,继续打开编辑器php目录下action_upload.php文件,如图:
2.png
发现打开后就发现出现一些未知变量,于是很醒目的看到顶部的一个 include "Uploader.class.php";,没事,接着顺藤摸瓜。再次打开编辑器php目录下Uploader.class.php文件,看到如下所示:
3.png
第一眼就看到了很醒目的private $filePath;这一行,即便对英文不敏感,也可以看到后方的注释,是一个文件路径。于是搜索它在该文档的其它地方,当然你可能会搜索到一些无关的。我搜索到其中之一如下:
4.png
该函数getFilePath();如此的醒目,以至于不得不让我再接着顺藤摸瓜,紧接着如下:
5.png
搜索到该函数的时候,你会看到一个私有方法。好了,基本已经确定了,不必再深究$rootPath = $_SERVER['DOCUMENT_ROOT'];首先这个方法很常见,php开发者用过就知道其作用是取网站当前根域名。即便不知道,看着变量$rootPath也该知道吧。
接下来我们应该打开编辑器的php目录下的config.json文件,如下:
6.png
该说的图中已经全部说明了,在我们已知后端是通过这种方法获取上传路径的,其不包括后缀路径“/”,则其起点就是根域名,那么 ???/ueditor “/ueditor”的前面,就直接是和域名拼接着,故此其图中红色框区域圈起来的就是各位要加上的项目路径了。当然事实验证说明我的判断正确性,如下:
8.png
从上传图片到编辑器,再到发布,均能够正常显示,中途未出任何差错。由于百度这里用的是拼接起来进而形成的“绝对路径”,故此大家千万不要去改后端文件夹,去在根域名$_SERVER['DOCUMENT_ROOT'].'xxx'后拼接自己的项目文件夹名称,那是绝对作死的方法。因为config.json文件中的imagePathFormat":这行,“/ueditor”前面根的是绝对的根域名,而不是你后端修改或拼接起来的路径。

总结一下:

最终的修改方法,其实就是将“config.json”文件中的“"imagePathFormat":”这行,在“???/ueditor”前加上项目名称即可。