使用TCPDF时,PHP页面生成的QR码的imagecreatefrompng错误

时间:2018-01-28 08:05:46

标签: php qr-code tcpdf

这很奇怪,下面代码的第一行(TCPDF - PDF创建代码)可以工作,但有时候没有明显的原因。我讨厌间歇性的错误。失败时,错误消息与下面显示的第3行相同。

第二行正常。我相信这是更好的编码方式,不知道为什么。

第三行不起作用,但如果确实如此,我认为会更稳定。

错误说:

  

警告:   imagecreatefrompng(/ var / www / vhosts / path-to-file / tcpdf /../../ path / includes / php / phpqrcode.php?text = textforqrcode):无法打开流:没有这样的文件或目录。< / p>

../../用于到达正确的目录,我知道这是正确的,因为它与第2行相同,包含和图像在目录结构中处于同一级别。< / p>

事情是道路是正确的。我想这不起作用,因为它是由php文件生成的文件,但是它确实在第1行工作,它作为一种http对象生成。

这是我迄今为止尝试过的代码:

$pdf->Image('http://' . $serverHost . '/includes/php/phpqrcode.php?text='.$random, 15, 77, 30, 30, 'PNG', '', '', true, 150, '', false, false, 0, false, false, false);

$pdf->Image(__DIR__ . '/../../path/images/template/refunded.gif', 15, 77, 30, 16, 'GIF', '', '', true, 150, '', false, false, 0, false, false, false);

$pdf->Image(__DIR__ . '/../../path/includes/php/phpqrcode.php?text='.$random, 12, 250, 20, 20, 'PNG', '', '', true, 150, '', false, false, 0, false, false, false);

我也试过了,但它并不喜欢它,类似的错误信息:

$pdf->Image( K_PATH_IMAGES . '../../../../path/includes/php/phpqrcode.php?text='.$random, 12, 250, 20, 20, 'PNG', '', '', true, 150, '', false, false, 0, false, false, false);

(../../../../,因为相对路径发生了变化)。

我感觉我的头撞在墙上......

2 个答案:

答案 0 :(得分:2)

您不能使用查询字符串参数引用本地文件。如果phpqrcode.php期望text参数来自GET参数,则必须通过服务器加载它。如果您直接引用该文件,它将不会运行PHP代码,而是直接为您提供PHP文件。在这种情况下,它甚至无法找到该文件,因为它正在查找名为phpqrcode.php?text=asd的文件,而不是phpqrcode.php

据我所知,第一种方法是正确的,但如果你遇到问题,那么我们需要知道你用什么库来生成二维码。

答案 1 :(得分:0)

正如评论中所建议的那样,我使用copy()将图像保存到服务器上,使用PDF中服务器中的图像然后删除脚本末尾的图像。 Simples!谢谢@onik