Commit 18c33bbc authored by 王源's avatar 王源
Browse files

修复下载远程图片bug

parent cafc6580
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ class Drawer
        $url = $this->parseUrl($url);
        // excel画图中下载图片时对图片名做urlencode处理,防止中文名不能正常画图片的bug
        $filename = trim(pathinfo($url, PATHINFO_FILENAME));
        $ext = strtolower(pathinfo($url, PATHINFO_EXTENSION));
        $ext = $this->getImgExt($url);
        $filename = "$filename.$ext";

        $path = $this->rootPath . '/download/images/' . ($path ?: $this->savePath);
@@ -79,6 +79,8 @@ class Drawer
            $url = rawurlencode($url);
            $url = str_replace("%3A", ":", $url);
            $url = str_replace("%2F", "/", $url);
            $url = str_replace("%3F", "?", $url);
            $url = str_replace("%3D", "=", $url);
        }
        return $url;
    }
@@ -95,7 +97,8 @@ class Drawer

        $imgPathInfo = pathinfo($imgPath);
        $filename = $imgPathInfo['filename']; // 图片名称
        $ext = $imgPathInfo['extension']; // 图片扩展名
        $ext = $this->getImgExt($imgPath);

        [$img_w, $img_h] = getimagesize($imgPath); // 图片大小

        $savePath = $this->rootPath . '/download/board/' . $this->savePath;
@@ -239,4 +242,23 @@ class Drawer
        $this->savePath = $path;
    }

    /**
     * 获取图片扩展名
     * @param $path
     * @return bool|mixed|string
     * @author Zero
     */
    public function getImgExt($path)
    {
        $ext = false;
        $info = getimagesize($path);
        if (isset($info['mime']) && $info['mime']) {
            $ext = explode('/', $info['mime'])[1];
        } else {
            $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
            $ext = explode('?', $ext)[0] ?? $ext;
        }
        return $ext;
    }

}