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文件,注释很清楚

时间: 2024-08-10 14:57:48

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

aspx 文件上传和下载,多文件上传

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiFileUpload.aspx.cs"  Inherits="MultiFileUpload"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org

Java实现文件上传(验证文件大小、文件类型)

文件上传是每个java开发者必须掌握的.文件上传有很多种实现方式,但其实也大同小异.笔人在这里为大家介绍一种我习惯用的,上传文件的方式.大家先看代码,最后我会分享我的源码给大家. 1.首先要准备一下需要用到的jar包. commons-fileupload-1.2.1.jar -commons-io-1.4.jar 可以从[(http://commons.apache.org/)]下载,当然,我的项目源码里也有 然后开始写代码. public static String fileUpload(H

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

问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: [参考:http://blog.csdn.net/tengdazhang770960436/article/details/43274001] 如果你在本地的 Java 项目里面去用 FtpClient 上传文件,然后虽然文件上传上去了,但是文件里面没有内容,那么这说明你的机器防火墙设置有问题如下图

轻量级 web 文件上传组件,支持html5,支持上传进度显示(IE10+、标准浏览器),文件拖拽,降级支持IE6+

老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery File Uploader.FineUploader.Uploadify.Baidu Web Uploader 等等),功能都很强大,代码量一般也较大.当时心想,就这么个小功能,杀鸡焉用牛刀,用库的话还得熟悉它的用法,有的需要引入额外的库,纯Flash的不考虑,还是动手造个轮子得了,至少造过之后能

【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示

伴随着JDK1.6一起出现的Servlet3.0标准,使得JSP的文件上传系统不再艰难,此前在JSP的文件上传系统需要<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)类似这样的插件才能完成的文件上传系统,还不支持中文,使得各位程序猿掏空心思才能解决这个问题.现在Servlet3.0对文件上传的方法进行封装,无须分块就可以实现.而且Servlet3.0还不用类似<[Servlet]最简单的Servlet JavaWeb程序>(点击打开链接)在web

struts2 实现文件上传下载 (下载支持中文文件名)代码

struts2 实现文件上传: Action 代码: package com.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import com.o

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

方法一:使用FormData(因IE8不支持FormData, IE10才支持,因此此方法不兼容IE10以下的IE浏览器) 也可参考文章 http://www.jianshu.com/p/46e6e03a0d53 html: <input type="file" class="form-control" id="inputfile" title="多个文件请打包后再上传" style="display:inli

html多文件上传,可支持预览

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>表单提交</title> 6 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> 7 &

文件上传如何合理地验证文件类型?

在网上搜了一下,一般都是通过文件后缀名判断,很显而易见的是用户通过修改后缀名来逃避,我想问的问题有两个: 还有什么验证文件类型的方法? 攻击者利用后缀名漏洞能造成什么样的危害? 在网上找到的攻击方式有: 修改后缀名(exe->jpg), 多后缀名(test.php.fr), 后缀名大小写(php->pHp), 代码嵌入(图片里注入php代码), null字符(00) 相对路径(../../../) 知乎用户-江南回答 其实对于防御者来说,其实不用这么费劲来进行验证 时间戳+随机数+.jpg后缀