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[]这样
uedit修改文件上传路劲,支持api文件接口的更多相关文章
- 表单多文件上传样式美化 && 支持选中文件后删除相关项
开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进 ...
- ajaxfileupload多文件上传 - 修复只支持单个文件上传的bug
搜索: jquery ajaxFileUpload AjaxFileUpload同时上传多个文件 原生的AjaxFileUpload插件是不支持多文件上传的,通过修改AjaxFileUpload少量代 ...
- JS实现表单多文件上传样式美化支持选中文件后删除相关项
http://www.youdaili.net/javascript/5903.html
- JS_单个或多个文件上传_不支持单独修改
A-From表单直接填写提交地址,不过干预: 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/form-data",for ...
- Nginx集群之WCF大文件上传及下载(支持6G传输)
目录 1 大概思路... 1 2 Nginx集群之WCF大文件上传及下载... 1 3 BasicHttpBinding相关配置解析... 2 4 编写 ...
- Jquery图片上传组件,支持多文件上传
Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...
- struts文件上传,获取文件名和文件类型
struts文件上传,获取文件名和文件类型 Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...
- 【FTP】java FTPClient 文件上传内容为空,文件大小为0
问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: ...
- 考虑浏览器兼容的文件上传(IE8不支持FormData)
方法一:使用FormData(因IE8不支持FormData, IE10才支持,因此此方法不兼容IE10以下的IE浏览器) 也可参考文章 http://www.jianshu.com/p/46e6e0 ...
随机推荐
- 进阶系列二【绝对干货】---Quartz.Net的入门
一.Quartz.Net是什么? Quartz.Net是一个开源的作业调度框架,OpenSymphony的开源项目,是Quartz的C#移植项目.非常适合在平时的工作中,定时轮询数据库同步,定时邮件通 ...
- 3.从Node.js操作MongoDB文档
1.更新文档结构,而非SQL 2.数据库更新运算符 在MongoDB中执行对象的更新时,需要确切的指定需要改变什么字段.需要如何改变.不像SQL语句建立冗长的查询字符串来定义更新. MongoDB中可 ...
- jQuery表单编程实例
input type=radio 和 select option 操作input type=radio 定位 select option $(function () { $("input[n ...
- 没听说过这些,就不要说你懂并发了,three。
引言 很久没有跟大家再聊聊并发了,今天LZ闲来无事,跟大家再聊聊并发.由于时间过去的有点久,因此LZ就不按照常理出牌了,只是把自己的理解记录在此,如果各位猿友觉得有所收获,就点个推荐或者留言激励下LZ ...
- Effective C++阅读笔记_条款2:尽量以const,enum,inline替换#define
1.#define缺点1 #define NUM 1.2 记号NUM可能没有进入记号表,在调试或者错误信息中,无法知道1.2的含义. 改善:通过const int NUM = 1.2; 2.#dein ...
- 模拟搭建Web项目的真实运行环境(二)
上一节已经介绍了如何在虚拟机中部署测试环境,接下来将介绍怎么在ubuntu下部署redis. 一.在ubuntu安装Xrdp + Vnc 为了在以后可以通过windows系统来远程操作ubuntu ...
- 卸载 ibus 使Ubuntu16.04任务栏与启动器消失 问题解决
经查证是unity误卸载了,我使用了命令: sudo apt-get remove --purge ibus 解决方法是: 使用以下命令:重置compiz: dconf reset -f /org/c ...
- virtaulbox视图模式常用切换
virtaulbox发现菜单不见,如何切换视图模式呢? 很简单,通过快捷键主机(host)键 Host+F 换到全屏模 ...
- 【Jsoup网页解析】
下载链接:http://jsoup.org/download 一.普通的请求方式(不带有cookie) 使用举例: 第一步: Connection conn=Jsoup.connect(url); 第 ...
- Power BI for Office 365(五)Power View第二部分
继续上一篇Power View 报表的创建, Anna觉得为每一个大类创建一张单独的报表似乎很不现实,所以她决定按照另外一种方式来设计报表,从而满足最终用户想要查看不同大类下的数据的要求. 于是Ann ...