Commit 18c33bbc authored by 王源's avatar 王源 🎧

修复下载远程图片bug

parent cafc6580
...@@ -49,7 +49,7 @@ class Drawer ...@@ -49,7 +49,7 @@ class Drawer
$url = $this->parseUrl($url); $url = $this->parseUrl($url);
// excel画图中下载图片时对图片名做urlencode处理,防止中文名不能正常画图片的bug // excel画图中下载图片时对图片名做urlencode处理,防止中文名不能正常画图片的bug
$filename = trim(pathinfo($url, PATHINFO_FILENAME)); $filename = trim(pathinfo($url, PATHINFO_FILENAME));
$ext = strtolower(pathinfo($url, PATHINFO_EXTENSION)); $ext = $this->getImgExt($url);
$filename = "$filename.$ext"; $filename = "$filename.$ext";
$path = $this->rootPath . '/download/images/' . ($path ?: $this->savePath); $path = $this->rootPath . '/download/images/' . ($path ?: $this->savePath);
...@@ -79,6 +79,8 @@ class Drawer ...@@ -79,6 +79,8 @@ class Drawer
$url = rawurlencode($url); $url = rawurlencode($url);
$url = str_replace("%3A", ":", $url); $url = str_replace("%3A", ":", $url);
$url = str_replace("%2F", "/", $url); $url = str_replace("%2F", "/", $url);
$url = str_replace("%3F", "?", $url);
$url = str_replace("%3D", "=", $url);
} }
return $url; return $url;
} }
...@@ -95,7 +97,8 @@ class Drawer ...@@ -95,7 +97,8 @@ class Drawer
$imgPathInfo = pathinfo($imgPath); $imgPathInfo = pathinfo($imgPath);
$filename = $imgPathInfo['filename']; // 图片名称 $filename = $imgPathInfo['filename']; // 图片名称
$ext = $imgPathInfo['extension']; // 图片扩展名 $ext = $this->getImgExt($imgPath);
[$img_w, $img_h] = getimagesize($imgPath); // 图片大小 [$img_w, $img_h] = getimagesize($imgPath); // 图片大小
$savePath = $this->rootPath . '/download/board/' . $this->savePath; $savePath = $this->rootPath . '/download/board/' . $this->savePath;
...@@ -239,4 +242,23 @@ class Drawer ...@@ -239,4 +242,23 @@ class Drawer
$this->savePath = $path; $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;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment