thinkphp 6.0 使用tinyMCE image 图片上传插件应该注意的问题

一般情况下,tinyMCE的image的图像上传功能接收来自服务器返回的json字符串,然后解析成图片链接引入编辑器。

但是,在开发过程中, 由于tp处于debug模式, 返回的数据会附带上调试的html, js代码,从而导致因该返回的json字符串解析失败,错误信息如下:

Uncaught SyntaxError: Unexpected token < in JSON at position 0

所以,返回json字符串后,应该立即调用exit就可避免这样的问题出现。

示例(最后一行):

public function saveImg()
    {
        //专为tinyMCE的图片上传函数,参照tinyMCE手册改写
        //http://tinymce.ax-z.cn/advanced/php-upload-handler.php

        reset($_FILES);
        $temp = current($_FILES);
        // dump($temp);
        // $file = $temp['tmp_name'];
        // $fileName = $temp['name'];
        // dump($file);
        // dump($fileName);

        // $Msg = serialize($temp);

        // header("HTTP/1.1 500 $Msg");

        // dump()

        // $file = Request::file("temp_name");
        // dump($file);
        // $fileName = $file->getOriginalName();
        // dump($fileName);

        if (!is_uploaded_file($temp['tmp_name'])) {
            header("HTTP/1.1 500 Server Error");
            exit;
        }

        // 简单的过滤一下文件名是否合格
        // if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name])) {
        //     header("HTTP/1.1 400 Invalid file name.");
        //     exit;
        // }

        // 验证扩展名
        // if (!in_array(strtolower(pathinfo($fileName, PATHINFO_EXTENSION)), array("gif", "jpg", "png", "jpeg"))) {
        //     header("HTTP/1.1 400 Invalid extension.");
        //     exit;
        // }
        // dump($file->getPathname());
        // $file =  fopen($file->getPathname());

        // dump($temp['tmp_name']);

        // $file = fopen($temp['tmp_name'], 'r');

        $file = new File($temp['tmp_name']);

        $info = Filesystem::disk('img')->putFile('', $file, 'md5');
        $info = '/storage/img/' . $info;
        echo json_encode(array('location' => $info));
        exit;
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值