首页 > php教程 > php手册 > 正文

说ueditor上传图片功能

php中文网
发布: 2016-06-07 11:36:09
原创
1509人浏览过

说ueditor上传图片功能
借鉴了ueditor自带的php代码,和ot中的相关代码。
此代码已发布到我的csdn当中<?php <br /> // +----------------------------------------------------------------------<br> // | UploaderController <br> // +----------------------------------------------------------------------<br> // | Copyright (c) 2015 AntDz All rights reserved.<br> // +----------------------------------------------------------------------<br> // | Author: antdz <vip_antdz><br> // +----------------------------------------------------------------------<br> namespace Admin\Controller;<br> use Think\Controller;<br> @ini_set('upload_max_filesize', '20M');<br><br> class UploaderController extends Controller {<br>     public function index() {<br>         $this -&gt; display();<br>     }<br><br>     /**<br>      * 用于百度ueditor<br>      * 其中UE_CONFIG在config文件中定义<br>      */<br><br>     public function manager() {<br>         date_default_timezone_set("Asia/Chongqing");<br><br>         $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents(C('UE_CONFIG'))), true);<br>         $action = $_GET['action'];<br><br>         switch ($action) {<br>             case 'config' :<br>                 $result = $CONFIG;<br>                 break;<br>             case 'listfile' :<br>             case 'listimage' :<br>                 $result = $this -&gt; lists($CONFIG, $action);<br>                 break;<br>             /* 上传图片 */<br>             case 'uploadimage' :<br>             /* 上传涂鸦 */<br>             case 'uploadscrawl' :<br>                 $config = array('maxSize' =&gt; $CONIFG['imageMaxSize'], 'rootPath' =&gt; C('UPLOAD_PATH'), 'savePath' =&gt; 'images/', 'saveName' =&gt; array('uniqid', ''), 'exts' =&gt; $CONIFG['imageAllowFiles'], 'autoSub' =&gt; true, 'subName' =&gt; array('date', 'Ymd'), );<br>                 $result = $this -&gt; up($config);<br>                 break;<br>             /* 上传视频 */<br>             case 'uploadvideo' :<br>                 $config = array('maxSize' =&gt; $CONIFG['videoMaxSize'], 'rootPath' =&gt; C('UPLOAD_PATH'), 'savePath' =&gt; 'videos/', 'saveName' =&gt; array('uniqid', ''), 'exts' =&gt; array('jpg', 'gif', 'png', 'jpeg', 'zip', 'doc', 'pdf'), 'autoSub' =&gt; true, 'subName' =&gt; array('date', 'Ymd'), );<br>                 $result = $this -&gt; up($config);<br>                 break;<br>             /* 上传文件 */<br>             case 'uploadfile' :<br>             default :<br>                 $config = array('maxSize' =&gt; $CONIFG['fileMaxSize'], 'rootPath' =&gt; C('UPLOAD_PATH'), 'savePath' =&gt; 'files/', 'saveName' =&gt; array('uniqid', ''), 'exts' =&gt; $CONIFG['fileManagerAllowFilesarray'], 'autoSub' =&gt; true, 'subName' =&gt; array('date', 'Ymd'), );<br>                 $result = $this -&gt; up($config);<br>                 break;<br>         }<br>         /* 输出结果 */<br>         if (isset($_GET["callback"])) {<br>             if (preg_match("/^[\w_]+$/", $_GET["callback"])) {<br>                 $this -&gt; ajaxReturn($result, 'JSON');<br>             } else {<br>                 $tmp = array('state' =&gt; 'callback参数不合法');<br>                 $this -&gt; ajaxReturn($tmp, 'JSON');<br>             }<br>         } else {<br>             //echo $result;<br>             $this -&gt; ajaxReturn($result, 'JSON');<br>         }<br>     }<br><br>     /**<br>      * 用于百度编辑器上传功能<br>      */<br><br>     public function up($config) {<br>         //TODO:删除不删除?<br>         @ini_set('upload_max_filesize', '20M');<br><br>         $Picture = D('Picture');<br>         $file_driver = C('PICTURE_UPLOAD_DRIVER');<br>         $info = $Picture -&gt; upload($_FILES, $config, C('PICTURE_UPLOAD_DRIVER'), C("UPLOAD_{$file_driver}_CONFIG"));<br><br>         if ($info) {<br>             if ($info['upfile']['url'] == "") {<br>                 return array('url' =&gt; __ROOT__ . $info['upfile']['path'], 'title' =&gt; htmlspecialchars($_POST['pictitle'], ENT_QUOTES), 'original' =&gt; $info['upfile']['name'], 'state' =&gt; 'SUCCESS');<br>             } else {<br>                 return array('url' =&gt; $info['upfile']['url'], 'title' =&gt; htmlspecialchars($_POST['pictitle'], ENT_QUOTES), 'original' =&gt; $info['upfile']['name'], 'state' =&gt; 'SUCCESS');<br>             }<br><br>         } else {<br>             return array('state' =&gt; $Picture -&gt; getError());<br>             //获取失败信息<br>         }<br>     }<br><br>     /**<br>      *百度编辑器列出本地服务器上传目录<br>      *<br>      *<br>      **/<br>     public function lists($config, $type) {<br>         switch ($type) {<br>             case 'listfile' :<br>                 $allowFiles = $config['fileManagerAllowFiles'];<br>                 $listSize = $config['fileManagerListSize'];<br>                 $path = $config['fileManagerListPath'];<br>                 break;<br><br>             default :<br>                 $allowFiles = $config['imageManagerAllowFiles'];<br>                 $listSize = $config['imageManagerListSize'];<br>                 $path = $config['imageManagerListPath'];<br>                 break;<br>         }<br><br>         $allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1);<br>         /* 获取参数 */<br>         $size = isset($_GET['size']) ? htmlspecialchars($_GET['size']) : $listSize;<br>         $start = isset($_GET['start']) ? htmlspecialchars($_GET['start']) : 0;<br>         $end = $start + $size;<br><br>         /* 获取文件列表 */<br>         $path = DOC_ROOT . C('UPLOAD_PATH');<br>         $files = $this -&gt; getfiles($path, $allowFiles);<br>         if (!count($files)) {<br>             return array("state" =&gt; "no match file", "list" =&gt; array(), "start" =&gt; $start, "total" =&gt; count($files));<br>         }<br><br>         /* 获取指定范围的列表 */<br>         $len = count($files);<br>         for ($i = min($end, $len) - 1, $list = array(); $i = 0 &amp;&amp; $i &gt;= $start; $i--) {<br>             $list[] = $files[$i];<br>         }<br><br>         $result = array("state" =&gt; "SUCCESS", "list" =&gt; $list, "start" =&gt; $start, "total" =&gt; count($files));<br>         return $result;<br>     }<br><br>     /**<br>      * 获取本地文件<br>      */<br><br>     function getfiles($path, $allowFiles, &amp;$files = array()) {<br>         if (!is_dir($path)) {<br>             exit('E1:path is wrong ' . $path);<br>             return null;<br>         }<br>         if (substr($path, strlen($path) - 1) != '/')<br>             $path .= '/';<br>         $handle = opendir($path);<br>         while (false !== ($file = readdir($handle))) {<br>             if ($file != '.' &amp;&amp; $file != '..') {<br>                 $path2 = $path . $file;<br>                 if (is_dir($path2)) {<br>                     $this -&gt; getfiles($path2, $allowFiles, $files);<br>                 } else {<br>                     if (preg_match("/\.(" . $allowFiles . ")$/i", $file)) {<br>                         $files[] = array('url' =&gt; substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), 'mtime' =&gt; filemtime($path2));<br>                     }<br>                 }<br>             }<br>         }<br>         return $files;<br>     }<br><br>     /**<br>      * 上传图片<br>      * @author huajie <banhuajie><br>      */<br>     public function uploadPicture() {<br><br>         /* 返回标准数据 */<br>         $return = array('status' =&gt; 1, 'info' =&gt; '上传成功', 'data' =&gt; '');<br><br>         /* 调用文件上传组件上传文件 */<br>         $Picture = D('Picture');<br>         $file_driver = C('PICTURE_UPLOAD_DRIVER');<br>         $info = $Picture -&gt; upload($_FILES, C('PICTURE_UPLOAD'), C('PICTURE_UPLOAD_DRIVER'), C("UPLOAD_{$file_driver}_CONFIG"));<br>         //TODO:上传到远程服务器<br><br>         /* 记录图片信息 */<br>         if ($info) {<br>             $return['status'] = 1;<br>             $return = array_merge($info['download'], $return);<br>         } else {<br>             $return['status'] = 0;<br>             $return['info'] = $Picture -&gt; getError();<br>         }<br><br>         /* 返回JSON数据 */<br>         $this -&gt; ajaxReturn($return);<br>     }<br><br> }</banhuajie></vip_antdz>

AD:真正免费,域名+虚机+企业邮箱=0元

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号