欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

uploadify 插件 使用thinkphp ajaxreturn 返回 unicode编码?

程序员文章站 2022-05-17 18:12:52
...
    public function fileup(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     1024*1024*2 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 设置附件上传类型
        $upload->rootPath  =     './Public/Uploads/'; // 设置附件上传根目录
        $upload->savePath  =     ''; // 设置附件上传(子)目录
        // 上传文件 
        $info   =   $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->ajaxReturn($upload->getError());
        }else{// 上传成功
            foreach ($info as $file) {
                $data['filename'] = $file['name'];
                $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename'];
                $data['filesize'] = $file['size'];
                $this->ajaxReturn($data);
            }
        }
    }

我在使用upploadify插件上传文件,如果上传失败,就返回错误信息,
但是$this->ajaxReturn($upload->getError());返回的是unicode编码?

\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8

请问为什么会返回unicode编码吗?是因为什么呢?
不能直接显示汉字吗?

回复内容:

    public function fileup(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     1024*1024*2 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 设置附件上传类型
        $upload->rootPath  =     './Public/Uploads/'; // 设置附件上传根目录
        $upload->savePath  =     ''; // 设置附件上传(子)目录
        // 上传文件 
        $info   =   $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->ajaxReturn($upload->getError());
        }else{// 上传成功
            foreach ($info as $file) {
                $data['filename'] = $file['name'];
                $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename'];
                $data['filesize'] = $file['size'];
                $this->ajaxReturn($data);
            }
        }
    }

我在使用upploadify插件上传文件,如果上传失败,就返回错误信息,
但是$this->ajaxReturn($upload->getError());返回的是unicode编码?

\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8

请问为什么会返回unicode编码吗?是因为什么呢?
不能直接显示汉字吗?

thinkphp的ajaxreturn 是直接将汉字json_encode 然后返回输出

你可以先将汉字urlencode再json_encode最后再urldecode就可以了

或者你直接将信息echo出来 不json_encode,汉字就不会被编码成unicode

并不一定要用$this->ajaxReturn 可以直接用 json_encode,加上第二个参数就好SON_UNESCAPED_UNICODE(这个参数你使用的版本应该支持)
还有个建议 成功与失败返回的数据格式一致 都是json
别外 怎么会写到foreach里面去$this->ajaxReturn

相关标签: php thinkphp