本文介绍了PHP-二维码生成失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用PHP QR Code库生成二维码。

我包含了库,在从数据库获取用户信息后,我正在尝试创建Qrcode。然后将生成的qrcode的路径返回到前端,这样我就可以将它传递给一个图像标签,以便向用户展示它。

我正在从数据库中获取姓名、ID、电子邮件和用户图像路径。我希望将用户图像包括到Qrcode中,因此我获取内容并将其编码为字符串。

我没有收到错误。我检查了文件夹,没有保存Qrcode。

require_once 'externalLibraries/qrcode/qrlib.php';
 // how to build raw content - QRCode with Business Card (VCard) + photo         
 $tempDir = QRCODE_PATH; //saves temporary directory path

 // we building raw data 
 $codeContents  = 'BEGIN:VCARD'."
"; 
 $codeContents .= 'FN:'.$name."
"; 
 $codeContents .= 'ID:'.$id."
"; 
 $codeContents .= 'EMAIL:'.$email."
"; 
 $codeContents .= 'PHOTO;JPEG;ENCODING=BASE64:'.base64_encode(file_get_contents('../'.$userAvatar))."
"; 
 $codeContents .= 'END:VCARD'; 

 // generating 
 QRcode::png($codeContents, $tempDir.$clientid.'.png', 4, 3); 

 // displaying 
 return QRCODE_PATH.$clientid.'.png'; 

这是生成Qrcode的方式吗?

推荐答案

您的代码正在为我工作。图像被保存在指定的位置。不过,我为您的变量使用了占位符。要显示可以使用的图像,请执行以下操作:

$imgpath = QRCODE_PATH.$clientid.'.png';
$src = 'data: '.mime_content_type($imgpath).';base64,'.base64_encode(file_get_contents($imgpath));
echo '<img src="'.$src.'">';

更新:

正如RST在评论中提到并在这些answer中所述,QR-Code只能有有限的大小。您使用的图像可能太大了。试着在没有图像的情况下使用你们这一代人,看看它是否奏效。要回答评论中的问题,您可以将图像重新定位为较小的图像,但没有其他方法可以帮助您,因此二维码的大小是有限的。也许你会考虑在二维码中加入一个图像链接。

这篇关于PHP-二维码生成失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 20:01