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

html5 - UMeditor thinkphp上传图片出错

程序员文章站 2022-04-11 15:42:17
...

html5 - UMeditor thinkphp上传图片出错

显示“上传出错” 但其实已经上传成功了图片

页面配置如下


thinkphp控制器 图片处理如下:图片已经上传成功

 public function upload()
    {
        //$this->checkLogin();//检测用户是否登录,需要另外写~
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 5 * 1024 * 1024;// 设置附件上传允许的大小            $upload->autoSub  = true;
        $upload->saveName = array('uniqid', '');
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = 'Uploads/attach/'; // 设置附件上传根目录
        //$upload->savePath = '';  // 设置附件上传(子)目录
        $upload->subName = array('date', 'Ymd'); //按年月日生成目录
        // 上传文件
        $info = $upload->upload();
        if ($info) {
            // 上传成功 获取上传文件信息
            foreach ($info as &$file) {
                //拼接出文件相对路径
                $file['filepath'] = $file['savepath'] . $file['savename'];
            }
            //返回json数据被百度Umeditor编辑器
            echo json_encode(array(
                'url' => $file['filepath'],
                'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES), 'original' => $file['savename'],
                'state' => 'SUCCESS'
            ));
        } else {
            // 上传失败
            echo json_encode(array('state' => $upload->getError()));
        }
    }

回复内容:

html5 - UMeditor thinkphp上传图片出错

显示“上传出错” 但其实已经上传成功了图片

页面配置如下


thinkphp控制器 图片处理如下:图片已经上传成功

 public function upload()
    {
        //$this->checkLogin();//检测用户是否登录,需要另外写~
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 5 * 1024 * 1024;// 设置附件上传允许的大小            $upload->autoSub  = true;
        $upload->saveName = array('uniqid', '');
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = 'Uploads/attach/'; // 设置附件上传根目录
        //$upload->savePath = '';  // 设置附件上传(子)目录
        $upload->subName = array('date', 'Ymd'); //按年月日生成目录
        // 上传文件
        $info = $upload->upload();
        if ($info) {
            // 上传成功 获取上传文件信息
            foreach ($info as &$file) {
                //拼接出文件相对路径
                $file['filepath'] = $file['savepath'] . $file['savename'];
            }
            //返回json数据被百度Umeditor编辑器
            echo json_encode(array(
                'url' => $file['filepath'],
                'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES), 'original' => $file['savename'],
                'state' => 'SUCCESS'
            ));
        } else {
            // 上传失败
            echo json_encode(array('state' => $upload->getError()));
        }
    }

分两步确认问题:

  1. chrome工具里看下upload最终响应的json是不是success?格式是不是对的?有没有空格、换行?有没有utf-8 bom头?

  2. 如果json是对的,回来跟踪umeditor里上传出错是哪里提示的,利用IDE或编辑器的搜索功能快速查找并定位输出,然后跟踪JS判断条件,排查代码