之前ueditor图片上传修改了配置文件,一直是在上传在项目目录下,而我需要是把它上传到独立服务器里,现在可算是整理好了
在图片上传的页面重写上传方法
// 重写富文本图片上传接口
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage') {
return '/Ueditor/imageUploadUeditor';
} else {
return this._bkGetActionUrl.call(this, action);
}
}
Ueditor.php 文件
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Ueditor 富文本编辑器
*/
class Ueditor extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
/**
* 图片上传
* */
public function imageUploadUeditor()
{
$fromField = 'upfile';
$subDir = 'ueditor';
// 图片存放的配置
$this->load->config('image_config');
$subDir .= '/' . date('Y/m/d');
$imgPath = $this->config->item('image_upload_path') . $subDir;
// 如果目录不存在,尝试创建
if(!is_dir($imgPath) && !mkdir($imgPath,0777,TRUE)){
echo json_encode(array('state'=>'权限不足,请联系管理员'));
}
// 合并配置
$config['upload_path'] = $imgPath;
$config = array_merge($this->config->item('arr_image_config'),$config);
$this->load->library('upload', $config);
if ($this->upload->do_upload($fromField)){
$data = $this->upload->data();
$url = $this->config->item('image_host').$subDir.'/'.$data['file_name'];
//返回的数据格式应与Ueditor接口返回的相同,否则会报错
$info = array(
"state" => "SUCCESS", //上传状态,上传成功时必须返回"SUCCESS"
"url" => $url, //图片地址
"title" => $data['file_name'], //新文件名
"original" => $data['orig_name'], //原始文件名
"type" => $data['file_ext'], //文件类型
"size" => $data['file_size'], //文件大小
);
echo json_encode($info);
}else{// 上传失败
$error = array('error' => $this->upload->display_errors());
echo json_encode(array('state'=>$error));
}
}
}