uedit修改文件上传路劲,支持api文件接口
首先修改一个东西ueditor/ueditor.config.js
serverUrl: URL + "php/controller.php" 原来 serverUrl: "http://www.zx.com/app.php?m=index&a=rich_editor_upload_one_pic" 最好使用绝对路径,因为多图上传的时候也调用的是这个
控制器文件index.php 的rich_editor_upload_one_pic 方法
rich_editor_upload_one_pic 在mvc里面最好不要有权限控制,不然会有意向不到的意外
public function rich_editor_upload_one_pic() { date_default_timezone_set("Asia/chongqing"); error_reporting(E_ERROR); header("Content-Type: text/html; charset=utf-8"); $url = SYSTEM_ROOT . '/Public/hplus/plugins/ueditor/php/config.json'; //必须读取,不然报错 $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents($url)), true); $action = $_GET['action']; switch ($action) { case 'config': $result = json_encode($CONFIG); break; /* 上传图片 */ case 'uploadimage': $this->do_pic(); break; /* 上传涂鸦 */ case 'uploadscrawl': /* 上传视频 */ case 'uploadvideo': /* 上传文件 */ case 'uploadfile': // $result = include("action_upload.php"); $this->do_pic(); break; /* 列出图片 */ case 'listimage': $result = include("action_list.php"); break; /* 列出文件 */ case 'listfile': $result = include("action_list.php"); break; /* 抓取远程文件 */ case 'catchimage': $result = include("action_crawler.php"); break; default: $result = json_encode(array( 'state' => '请求地址出错' )); break; } /* 输出结果 */ if (isset($_GET["callback"])) { if (preg_match("/^[\w_]+$/", $_GET["callback"])) { echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; } else { echo json_encode(array( 'state' => 'callback参数不合法' )); } } else { echo $result; } }
public function do_pic() { $exts = M("Config")->where("name='file_exts'")->getField("value"); $info = uploadFile('Contract', $exts, $err); if (!$info) { $return = array( "state" => "FAIL", //上传状态,上传成功时必须返回"SUCCESS" "url" => '', //返回的地址 "title" => "", //新文件名 "original" => "", //原始文件名 "type" => "", //文件类型 "size" => "" //文件大小 ); exit(json_encode($return)); } if (C("SERVERFILE_STATUS") == 0) { $data['url'] = $info['0']['file']; } else {//启用文件服务器 $data['url'] = C("SERVERFILE_URL") . $info['savepath'] . $info['savename']; }
//必要的返回格式 $return = array( "state" => "SUCCESS", //上传状态,上传成功时必须返回"SUCCESS" "url" => $data['url'], //返回的地址 "title" => "", //新文件名 "original" => "", //原始文件名 "type" => "", //文件类型 "size" => "" //文件大小 ); exit(json_encode($return)); }
如果只是没有使用接口文件服务器,或者外网文件服务器,建议使用nfs挂载虚拟目录,这样既不用担心权限问题,也不担心性能问题,当然比如我现在这种蛋疼的情况,比较特殊
如果是本地或者nfs,需要修改上传路径,请修改php文件夹下面的config.json文件,注释很清楚
比如你的api接口就是支持多文件上传的那么file=name[]就是这样的,multiple="multiple"
如果你在ue里面需要用到
ueditor.all.js 的24486行
'<input id="edui_input_' + timestrap + '" type="file" accept="image/*" name="' + me.options.imageFieldName + "[]"+'" ' + //改好的
'<input id="edui_input_' + timestrap + '" type="file" accept="image/*" name="' + me.options.imageFieldName +'" ' + //原来的
ajaxfileupload多文件上传也会这样,但是只有html5支持
也需要 file=name[]这样
QQ一群 247823727
QQ二群 166427999
博客文件如果不能下载请进群下载
如果公司项目有技术瓶颈问题,请联系↓↓
如果需要定制系统开发服务,请联系↓↓
技术服务QQ: 903464207
QQ二群 166427999
博客文件如果不能下载请进群下载
如果公司项目有技术瓶颈问题,请联系↓↓
如果需要定制系统开发服务,请联系↓↓
技术服务QQ: 903464207