thinkphp3.2版本集成ueditor附件上传302错误

浏览:2856 发布日期:2014/04/17 分类:求助交流 关键字: thinkphp集成ueditor ueditor附件上传302错误
thinkphp版本3.2.2
Ueditor版本1.3.6
处理Ueditor上传代码如下:<?php

/**
 * Ueditor编辑器
 */
namespace Admin\Controller;
use Think\Controller;
class UeditorController extends AdminController {
    
    //上传图片
    public function imageUp() {
        
        //上传图片框中的描述表单名称,
        $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
        $path = htmlspecialchars($_POST['dir'], ENT_QUOTES);
        $imgSavePathConfig = C('IMAGE_UPLOADS_PATH');
        
        //获取存储目录
        if ( isset( $_GET[ 'fetch' ] ) ) {
            echo 'updateSavePath('. json_encode($imgSavePathConfig) .');';
            return;
    
        }
    
        //上传配置
        $config = array(
            "savePath" => $imgSavePathConfig,
            "maxSize" => C('IMAGE_MAX_SIZE'), //单位KB
            "allowFiles" => C('IMAGE_ALLOW_FILES'),
            "fileNameFormat" => $_POST['fileNameFormat']
        );
    
        if ( empty( $path ) ) {
    
            $path = $config[ 'savePath' ][ 0 ];
    
        }
    
        //上传目录验证
        if ( !in_array( $path, $config[ 'savePath' ] ) ) {
            //非法上传目录
            echo '{"state":"\u975e\u6cd5\u4e0a\u4f20\u76ee\u5f55"}';
            return;
        }
    
        $config[ 'savePath' ] = $path . '/';
        
        $this->ueUp($config);
        
    }
    
    //图片在线管理配置区
    public function imageManager() {
        //需要遍历目录
        $paths = C('IMAGE_UPLOADS_PATH');
        $action = htmlspecialchars( $_POST[ "action" ] );
        if ( $action == "get" ) {
            $files = array();
            foreach ( $paths as $path){
                $tmp = getfiles( $path );
                if($tmp){
                    $files = array_merge($files,$tmp);
                }
            }
            if ( !count($files) ) return;
            rsort($files,SORT_STRING);
            $str = "";
            foreach ( $files as $file ) {
                $str .= $file . "ue_separate_ue";
            }
            echo $str;
        }
    }
    
    //远程抓取配置区
    public function getRemoteImage() {
        //远程抓取图片配置
        $config = array(
            "savePath" => C('IMAGE_SAVE_PATH').'/' ,            //保存路径
            "allowFiles" => C('IMAGE_ALLOW_FILES') , //文件允许格式
            "maxSize" => C('IMAGE_MAX_SIZE')                    //文件大小限制,单位KB
        );
        $uri = htmlspecialchars( $_POST[ 'upfile' ] );
        $uri = str_replace( "&" , "&" , $uri );
        getRemoteImage( $uri,$config );
    }
    
    //涂鸦
    public function scrawlUp() {
        //上传配置
        $config = array(
            "savePath" => C('IMAGE_SAVE_PATH').'/' ,             //存储文件夹
            "maxSize" => C('IMAGE_MAX_SIZE'),                   //允许的文件最大尺寸,单位KB
            "allowFiles" => C('IMAGE_ALLOW_FILES')  //允许的文件格式
        );
        
        //临时文件目录
        $tmpPath = C('IMAGE_SAVE_PATH')."/tmp/";
        //获取当前上传的类型
        $action = htmlspecialchars( $_GET[ "action" ] );
        if ( $action == "tmpImg" ) { // 背景上传
            //背景保存在临时目录中
            $config[ "savePath" ] = $tmpPath;
            $up = new \Org\Util\Uploader( "upfile" , $config );
            $info = $up->getFileInfo();
            /**
             * 返回数据,调用父页面的ue_callback回调
             */
            echo "<script>parent.ue_callback('" . $info[ "url" ] . "','" . $info[ "state" ] . "')</script>";
        } else {
            //涂鸦上传,上传方式采用了base64编码模式,所以第三个参数设置为true
            $up = new \Org\Util\Uploader( "content" , $config , true );
            //上传成功后删除临时目录
            if(file_exists($tmpPath)){
                delDir($tmpPath);
            }
            $info = $up->getFileInfo();
            echo "{'url':'" . $info[ "url" ] . "',state:'" . $info[ "state" ] . "'}";
        }
    }
    
    //上传文件与媒体
    public function fileUp() {
        //上传配置
        $config = array(
            "savePath" => C('FILE_SAVE_PATH').'/' , //保存路径
            "allowFiles" => C('FILE_ALLOW_FILES') , //文件允许格式
            "maxSize" => C('FILE_MAX_SIZE'), //文件大小限制,单位KB
            "fileNameFormat" => $_POST['fileNameFormat']
        );
        $this->ueUp($config);
        
    }
    
    //视频
    public function getMovie() {
        $key =htmlspecialchars($_POST["searchKey"]);
        $type = htmlspecialchars($_POST["videoType"]);
        $html = file_get_contents('http://api.tudou.com/v3/gw?method=item.search&appKey=myKey&format=json&kw='.$key.'&pageNo=1&pageSize=20&channelId='.$type.'&inDays=7&media=v&sort=s');
        echo $html;
    }
    
    private function ueUp($config) {
        
        //生成上传实例对象并完成上传
        $up = new \Org\Util\Uploader( "upfile" , $config );
    
        /**
         * 得到上传文件所对应的各个参数,数组结构
         * array(
         *     "originalName" => "",   //原始文件名
         *     "name" => "",           //新文件名
         *     "url" => "",            //返回的地址
         *     "size" => "",           //文件大小
         *     "type" => "" ,          //文件类型
         *     "state" => ""           //上传状态,上传成功时必须返回"SUCCESS"
         * )
         */
        $info = $up->getFileInfo();
    
        /**
         * 向浏览器返回数据json数据
         * {
         *   'url'      :'a.rar',        //保存后的文件路径
         *   'fileType' :'.rar',         //文件描述,对图片来说在前端会添加到title属性上
         *   'original' :'编辑器.jpg',   //原始文件名
         *   'state'    :'SUCCESS'       //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
         * }
         */
        echo '{"url":"' .$info[ "url" ] . '","fileType":"' . $info[ "type" ] . '","original":"' . $info[ "originalName" ] . '","state":"' . $info["state"] . '"}';
    }

}

?>
可以正常上传图片、在线管理图片、远程抓去图片,但是不能上传附件。
问题详情:
火狐浏览器版本28.0、IE8版本8.0.7601.17514,上传附件过程中提示302网络错误,原因可能因为session_id()问题
谷歌浏览器版本 31.0.1650.63 m,可以正常上传附件文件,并保存

在Ueditor文件中attachment.html中有post_params:{"PHPSESSID":"<?php echo session_id(); ?>","fileNameFormat": editor.options.fileNameFormat}, //解决session丢失问题但是好像没有起作用,求解决办法
最佳答案
评论( 相关
后面还有条评论,点击查看>>