我们在4月开始在工作服务器上开始受到困扰 . 我们的应用程序一切正常,直到客户报告PDF不再显示图像 .
我们的PDF首先通过HTML渲染生成 . 显示HTML渲染时,图像显示正确 . 如果将mPDF中记录的图像URL复制并粘贴到新选项卡中,图像也会正确显示 .
但是......如果我们从不同的域加载图像,则图像会正确呈现 . 通过绝对路径,相对路径或URL路径加载图像都会导致此错误:
mPDF错误:IMAGE错误(http://www.aibsonline.co.uk/logo.gif):找不到图像文件
但是,正如您将看到徽标网址粘贴时一样 . 文件权限已经过测试(这就是它在根目录中的原因)作为标准,最高可达777.在我们目前为止看到的两种情况下,服务器都是Linux服务器 .
呈现徽标的HTML代码:
<div id="logo_wrapper" class="left">
<img width="107" height="76" src="<?php echo base_url('logo.gif'); ?>" />
</div>
真正的失败,它开始影响越来越多的客户 .
任何帮助感激不尽 .
UPDATE
如果渲染代码和图像在同一目录中,并且我们不使用绝对路径,则图像呈现,例如 .
<img width="107" height="76" src="logo.gif" />
5 回答
我今天遇到了这个问题 . 我的问题是我使用的域名在从服务器访问时没有解析回服务器 . 我在服务器上的hosts文件中添加了一个条目,并开始显示图像 .
您的等效主机文件条目修复了我的问题:
或者确保www.aibsonline.co.uk在您的服务器使用的DNS中解析为您的服务器 .
看来mPDF将图像作为cURL Web客户端访问,因此需要正确配置服务器上的DNS以引用回自身 .
我有类似的问题,我通过以下方式解决:
1.检查是否已安装gd库并在php ini文件中启用 . 如果没有安装gd库 .
2.打开调试变量
3.尝试互换图像的绝对/相对路径
希望这可以帮助 .
在同样的问题上,我发现get_headers()返回:
提供商说这是由于Web防火墙,因为请求格式错误且user_agent未设置 .
ini_set('user_agent', 'Mozilla/5.0');
解决了这个问题 .在使用mpdf的WordPress插件中,mpdf不使用WordPress http类,也不设置user_agent . 我通过添加mu-plugins解决了这个问题:
只需确保PDF类文件中包含与图像相关的功能 . 像parsejpg,parsepng,parsegif等......
我遇到了同样的问题 . mPDF正在运行DOG SLOW,最终只会显示“无法找到图像文件”错误 . 后
检查以确保图像实际存在
检查文件的权限
检查服务器上的所有错误日志
梳理了关于mPDF的文件
我发现有问题的图像文件以某种方式被破坏了 . 我将图像下载到本地计算机,使用图像编辑器(在本例中为Paint.NET)将其打开,将其重新保存为.gif文件并再次将其上载到服务器 . 这似乎解决了这个问题 . 你的里程我的变化 .
此外,为了它的 Value ,我不得不使用
images/image.gif
而不是文件路径/images/image.gif
.