Ueditor使用TP自定义文件上传类上传图片附件的问题?????

浏览:2067 发布日期:2014/11/15 分类:求助交流 关键字: thinkPHP 文件上传 添加文章 Ueditor
Ueditor采用TP自带文件上传类批量上传文件时,怎么返回上传文件json数据为一个数组?
Ueditor文件上传我是交给Article控制器下的upload方法:/**
         * Ueditor采用TP自带的upload类上传
         */
        public function upload(){
            date_default_timezone_set("Asia/chongqing");
            error_reporting(E_ERROR);
            header("Content-Type: text/html; charset=utf-8");
            
            $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./Data/ueditor/php/config.json")), true);
            $action = $_GET['action'];
            switch ($action) {
                case 'config':
                    $result =  json_encode($CONFIG);
                    break;
            
                    /* 上传图片 */
                case 'uploadimage':
                    //$result = include("action_upload.php");
                    import('ORG.Net.UploadFile');
                    $upload = new UploadFile();
                    $upload->autoSub = true;
                    $upload->subType = 'date';
                    $upload->dateFormat = 'Ymd';
                    if ($upload->upload('./Uploads/images/')){
                        $info= $upload->getUploadFileInfo();
                        import('ORG.Util.Image');
                        Image::water('./Uploads/images/'.$info[0]['savename'],'./Public/images/erweicode.jpg');
                        echo json_encode(array(
                                'url'        =>    __ROOT__.'/Uploads/images/'.$info[0]['savename'],
                                'title'        =>    htmlspecialchars($_POST['pictitle'], ENT_QUOTES),
                                'original'    =>    $info[0]['name'],
                                'state'        =>    'SUCCESS'
                                ));
                        
                    }else{
                        echo json_encode(array(
                                'state'    => $upload->getErrorMsg(),
                                ));
                    }
                    break;
                    /* 上传涂鸦 */
                case 'uploadscrawl':
                    /* 上传视频 */
                case 'uploadvideo':
                    /* 上传附件 */
                case 'uploadfile':   
                     import('ORG.Net.UploadFile');
                    $upload = new UploadFile();
                    $upload->autoSub = true;
                    $upload->subType = 'date';
                    $upload->dateFormat = 'Ymd';
                    if ($upload->upload('./Uploads/attachments/')){
                        $info = $upload->getUploadFileInfo();
                        echo json_encode(array(
                                'url'        =>    __ROOT__.'/Uploads/attachments/'.$info[0]['savename'],
                                'title'        =>    htmlspecialchars($_POST['pictitle'], ENT_QUOTES),
                                'original'    =>    $info[0]['name'],
                                'state'        =>    'SUCCESS'
                                ));

                    }else{
                        echo json_encode(array(
                                'state'    => $upload->getErrorMsg(),
                                ));
                    }

                    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;
            }
        }
返回的$info是上传文件信息,当我打印$info的时候,出现的是两个URL请求,而不是一个,返回数据也是单独的两个数组。

我想问的是怎么获取两个单独数组中的savename字段值,重新组合为一个单独的数组$saveNames。($saveName数组中存放的是上传所有文件的保存名)。
并且,添加文章的表单处理是另外一个函数addArticleHandle处理,怎么才能在adArticleHandle函数中获取所有文件保存名$saveNames这个数组,是将$saveNames这个数组设为全局吗?

说了这么多,由于上传文件和添加文章入库是异步完成的。我的目的就是达到以下的要求:1.添加文章失败时,删除刚刚上传的文件。 2.删除那些上传成功但没有插入文章的文件。 3.删除文章时,同时删除该文章上传的所有文件。
我已经把保存upload的表建好了,就是想问怎么获取上传文件的保存名,然后在addArticleHandle方法中使用。

或者大家有更好的方法,希望不吝赐教!!!
最佳答案
评论( 相关
后面还有条评论,点击查看>>