本文介绍了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-二维码生成失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!