首先修改一个东西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[]这样

uedit修改文件上传路劲,支持api文件接口的更多相关文章

  1. 表单多文件上传样式美化 && 支持选中文件后删除相关项

    开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进 ...

  2. ajaxfileupload多文件上传 - 修复只支持单个文件上传的bug

    搜索: jquery ajaxFileUpload AjaxFileUpload同时上传多个文件 原生的AjaxFileUpload插件是不支持多文件上传的,通过修改AjaxFileUpload少量代 ...

  3. JS实现表单多文件上传样式美化支持选中文件后删除相关项

    http://www.youdaili.net/javascript/5903.html

  4. JS_单个或多个文件上传_不支持单独修改

    A-From表单直接填写提交地址,不过干预: 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/form-data",for ...

  5. Nginx集群之WCF大文件上传及下载(支持6G传输)

    目录 1       大概思路... 1 2       Nginx集群之WCF大文件上传及下载... 1 3       BasicHttpBinding相关配置解析... 2 4       编写 ...

  6. Jquery图片上传组件,支持多文件上传

    Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...

  7. struts文件上传,获取文件名和文件类型

    struts文件上传,获取文件名和文件类型   Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...

  8. 【FTP】java FTPClient 文件上传内容为空,文件大小为0

    问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: ...

  9. 考虑浏览器兼容的文件上传(IE8不支持FormData)

    方法一:使用FormData(因IE8不支持FormData, IE10才支持,因此此方法不兼容IE10以下的IE浏览器) 也可参考文章 http://www.jianshu.com/p/46e6e0 ...

随机推荐

  1. 【Android学习】《Android开发视频教程》第一季笔记

    视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构 ...

  2. SQL/T-SQL实例参考

    ,D.[Score] B_Score ,'Distince'= CASE WHEN C.Score > D.Score THEN C.[Score] - D.[Score] WHEN C.Sco ...

  3. what's cloud computing? IaaS

    Cloud computing has changed the ITC industry. Companies like Amazon, Google and Microsoft have built ...

  4. VC++ CString类完美总结(整理)

    CString 是编程中一种非常有用的数据类型,它是MFC中的一个类,很大程度上简化了MFC中的许多字符串的操作. CString位于头文件afx.h中. ①.CString 类对象的初始化: CSt ...

  5. SQL中rowcount与@@rowcount

    rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, select * from 表A 这样的查询只会返回表A中的前10条数据.它和 ...

  6. ios 消息通知

    苹果的通知分为本地通知和远程通知,这里主要说的是远程通知 历史介绍 iOS 3 - 引入推送通知UIApplication 的 registerForRemoteNotificationTypes 与 ...

  7. 开发微信App支付

    1.首先到官方下载Demo,地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 下载后的目录结构如下:

  8. WINFORM中的COMBOX模糊查询

    有的时候下拉框中的元素过多不好查询,可以考虑进行模糊过滤查询. 在类文件的designer.cs中找到定义combox的模块,加入以下两行代码即可: this.combox.AutoCompleteM ...

  9. Mac常用终端命令

    一.基本命令 1.列出文件 ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions 参数 -w 显示中文,-l 详细信息, -a 包括 ...

  10. hdu 1300 Pearls

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1300 思路:用dp[i]表示前i种花费最低的情况,则有dp[i]=min(dp[i],dp[j+1]+(( ...