我们从4月份开始在工作服务器上受到这个问题的困扰。在客户报告pdf不再显示图像之前,我们的应用程序一切正常。
我们的PDF首先通过HTML渲染生成。当HTML呈现显示时,图像显示正确。此外,如果将mPDF中注明的图像URL复制并粘贴到新选项卡中,则图像显示正确。
然而…如果我们从不同的域加载图像,那么图像将被正确渲染。通过绝对路径,相对路径或URL路径加载图像都会导致此错误:
mPDF错误:IMAGE error (http://www.aibsonline.co.uk/logo.gif):无法找到图像文件
但是,正如您将看到的,徽标url在粘贴时可以工作。文件权限已经作为标准进行了测试(这就是为什么它在根目录中),最高可达777。在我们目前看到的两种情况下,Server都是Linux服务器。
呈现徽标的HTML代码:<div id="logo_wrapper" class="left">
<img width="107" height="76" src="<?php echo base_url('logo.gif'); ?>" />
</div>
这是一个真正的损失,并开始影响越来越多的客户。
感谢您的帮助。
如果渲染代码和图像在同一目录中,并且我们没有使用绝对路径,则渲染图像,例如
<img width="107" height="76" src="logo.gif" />
我今天偶然发现了这个问题。我的问题是,我使用的域名没有解析回服务器时,从服务器访问。我在服务器上的hosts文件中添加了一个条目,图像开始显示。
解决我的问题的等效主机文件条目将是:
127.0.0.1 www.aibsonline.co.uk
或者确保www.aibsonline.co.uk在您的服务器使用的DNS中解析到您的服务器。
看起来mPDF作为cURL web客户端访问图像,因此服务器上的DNS需要正确配置以引用自己。
我有一个类似的问题,我解决如下:
1。检查是否在php ini文件中安装并启用了gd库。如果没有,请安装gd库。
2。打开调试变量
$mpdf = new mPDF();
$mpdf->showImageErrors = true;
3。尝试互换图像的绝对/相对路径
<img src="http://someDomain/directory/image.jpg">
<img src="./directory/image.jpg">
我尝试了所有其他答案,但对我来说,只添加
$mpdf->curlAllowUnsafeSslRequests = true;
修复问题
同样的问题,我发现get_headers()返回:
"HTTP/1.1 412 Precondition Failed"
提供者说这是由于web防火墙,因为请求格式不正确,并且没有设置user_agent。
一个ini_set('user_agent', 'Mozilla/5.0');
解决了这个问题。
在使用mpdf的WordPress插件中,mpdf不使用WordPress http类,也不设置user_agent。我通过添加mu-plugins解决了这个问题:
global $wp_version;
ini_set('user_agent',apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ));
我也遇到了同样的问题。mPDF运行DOG慢,最终会显示"无法找到图像文件"错误。在
- 检查以确保图像确实存在
- 检查文件 的权限
- 检查服务器上的所有错误日志
- 梳理mPDF 上的文档
我发现有问题的图像文件不知何故损坏了。我把图像下载到我的本地电脑上,用图像编辑器(Paint)打开它。. NET),将其重新保存为.gif文件,并再次将其上传到服务器。这似乎解决了问题。你的里程可能会有所不同。
另外,为了它的价值,我不得不使用images/image.gif
而不是文件路径/images/image.gif
。
确保在PDF类文件中有与图像相关的函数。如parsejpg, parsepg, parseif等
我有密码保护的服务器。htaccess/.passwd),经过一些研究,我了解到mPDF使用HTTP获取图像,但由于密码保护,服务器阻止了公众的图像。删除密码保护后,我有ssl证书问题,我启用usafe请求,它开始工作
$mpdf->curlAllowUnsafeSslRequests = true;
还可以始终启用调试模式并遵循错误消息
$mpdf->showImageErrors = true;
$mpdf->debug = true;