ueditor富文本编辑器跨域上传图片解决办法

 在使用百度富文本编辑器的过程中,如果是有一台单独的图片服务器就需要将上传的图片内容放到图片服务器,也就是比如在a.com的编辑器上传图片,图片要保存到img.com的跨域上传图片功能,而在ueditor官方文档中说不支持单图上传的跨域,

网上查了一下各种花里胡哨,一顿操作猛如虎,比如加document.domain,配置全域名的等等都是然并卵,我仔细研究了一下ueditor的demo文件,相出了一个折中办法,很简单只需要修改demo中两个地方的代码外加写一个上传接口即可.

首先引入页面ueditor编辑器,这里不多说,可以参考之前的一篇博客:

1.此时你上传的图片都是保存在本地的,如果想要跨域传到其它服务器,需要在ueditor/php/config.json配置文件中的图片配置项imageUrlPrefix加上域名,这样你在上传完图片之后返回给你的就是全路径的图片,

在任何地方都可以显示,我这里以客户端a.com通过编辑器上传图片到img.com上,所以imageUrlPrefix配置为http://img,com:

2.修改完访问路径还需要修改ueditor/php/Uploader.class.php文件,找到 upFile() 方法,此方法就是demo中上传文件的主处理方法,修改这个上传方法比做什么代理页面、加js什么的更简单也更好理解,就算多个页面引入也没得问题:

复制代码
    private function upFile()     {         $file = $this->file = $_FILES[$this->fileField];         if (!$file) {             $this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND");             return;         }         if ($this->file['error']) {             $this->stateInfo = $this->getStateInfo($file['error']);             return;         } else if (!file_exists($file['tmp_name'])) {             $this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND");             return;         } else if (!is_uploaded_file($file['tmp_name'])) {             $this->stateInfo = $this->getStateInfo("ERROR_TMPFILE");             return;         }          $this->oriName = $file['name'];         $this->fileSize = $file['size'];         $this->fileType = $this->getFileExt();         $this->fullName = $this->getFullName();         $this->filePath = $this->getFilePath();         $this->fileName = $this->getFileName();         $dirname = dirname($this->filePath);          //检查文件大小是否超出限制        if (!$this->checkSize()) {             $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");             return;         }          //检查是否不允许的文件格式        if (!
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信