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;
    }

 

上一篇:进程终止,环境表以及在内存中布局和非局部跳转


下一篇:Arduino Due, Maple and Teensy3.0 的 W5200性能测试