如何将QR码作为图像文件存储到Mysql数据库中

时间:2019-03-07 12:52:57

标签: php laravel

我正在使用Laravel实现一个简单的应用程序。 只是想知道,当我通过电子邮件发送二维码时,是否需要先将二维码存储在数据库中以指定图像的文件传递?

如果答案是肯定的,我有什么办法可以不用表单标签来存储二维码?

3 个答案:

答案 0 :(得分:2)

您可以将图像转换为base64,然后将其存储为文本。 有关如何对访问http://php.net/manual/en/function.base64-encode.php进行编码和对http://php.net/manual/en/function.base64-decode.php进行解码的更多信息

示例编码:

$file_encoded = base64_encode(file_get_contents($file)); //this is stringed data. save this in database. 

示例解码:

$file_encoded = base64_decode ($file_encoded); //this will be file.

答案 1 :(得分:1)

您还可以将图像存储为BLOB,与以base64编码的图像相比,开销较小,并且不会被索引为可搜索的字符串。

更好的方法可能是只将指向二进制文件的链接存储在数据库中,而不是数据本身。

答案 2 :(得分:1)

我认为您不需要存储实际的QR码。

QR码仅仅是表示字符串的一种方式。人们通常会在QR码中添加一个网址。

您可能只需将源数据存储到您的数据库中,然后根据数据生成QR。

如果数据是URL,则使用QR的设备应能够链接到该URL,这会将其带回您的应用程序。您可以将参数放在URL的末尾,以允许您的应用从数据库中检索该用户的数据。
您甚至可以使用签名的URL,以便最终用户无法更改它。

这是我发现可能会有所帮助的文章。它不是laravel特有的,但将有助于理解QR码。 https://www.kerneldev.com/2018/09/07/qr-codes-in-laravel-complete-guide/