mpdf 图像错误,找不到图像文件
Posted
技术标签:
【中文标题】mpdf 图像错误,找不到图像文件【英文标题】:mpdf Image error, could not find image file 【发布时间】:2015-01-28 16:54:58 【问题描述】:我已经用这个把头发扯了两天了,我不禁觉得它简单得可笑。
当尝试对 mpdf 库使用标准 jpg 图像时,我收到以下图像错误...
<B>mPDF error: </B>IMAGE Error (https://www.example.net/myimage.jpg): Could not find image file
-
http 和 https 我都试过了
我已经尝试了here 的解决方案,包括编辑服务器主机文件、检查权限
无论图片的url是什么都会出现问题(外部图片也会出现同样的问题)
我已经确定服务器上安装了php gd和curl
我通过直接复制粘贴错误链接,反复检查确保图片路径正确。
注意事项,
我在另一台服务器上进行了这项工作(但它是共享主机,所以一切都已设置好,我使用 phpinfo() 比较了两者,我能看到的唯一区别是我的 php 版本稍新。 自从移动网站后,我还遇到了另一个问题,该问题还涉及读取 url,即使 url 正确,我也会收到 404 not found 错误 我在 Windows 上使用我的 hosts 文件将域指向此服务器,因此它尚未生效【问题讨论】:
我最近在 curl 和 mpdf 方面遇到了同样的问题,这是主机的问题 - 你已经提到过。因此,如果有办法朝那个方向尝试其他方法——我会建议这样做。我也在这里找到了类似的答案***.com/a/9579996/1332837 我从来没有真正解决过这个问题,但我在完全相同的服务器上设置了一个副本开发站点,它有自己的真实实时 URL,它运行良好,所以它肯定与主机文件有关,而不是服务器设置问题。然而,由于所有的变化和混乱,我试图在服务器和本地处理主机文件,我无法让它在“实时”版本上工作。我冒着风险更改了 A 记录并简单地将其变为现实(知道这不是 php 或服务器设置问题),并且成功了。 ***.com/questions/23514062/…的可能重复 【参考方案1】:我设法在本地开发中解决了这个问题
我的设置如下:Windows 10 上的 XAMPP php版本5.6.35 启用 SSL mpdf版本5.4
该问题与 SSL/TLS 版本不兼容有关。 至于我修补mpdf.php的解决方案
在mpdf.php类结束前添加如下函数
private function _curl($url)
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING,"");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT,10);
curl_setopt($ch, CURLOPT_FAILONERROR,true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$data = curl_exec($ch);
curl_close($ch);
return $data;
然后添加这一行以在函数 _getImage 中调用上述函数(大约第 9283 行〜某事,我的行号可能与您的不同) 在抛出错误消息之前
// patch
if (empty($data))
$data = $this->_curl($file);
// end patch
if (!$data) return $this->_imageError($file, $firsttime, 'Could not find image file');
此方法是为了防止过多地更改 mpdf 库本身。
注意:此解决方案可能不适用于所有设置!您可以参考以下链接了解更多信息。 参考:https://***.com/a/42185532/209247
【讨论】:
以上是关于mpdf 图像错误,找不到图像文件的主要内容,如果未能解决你的问题,请参考以下文章