CakePHP 2.x QR码生成和下载

时间:2016-04-04 12:32:24

标签: cakephp cakephp-2.0

目的:

为一组字符串生成QR代码图像并下载它们。

到目前为止我尝试了什么:

我使用了以下链接中的QrCodeHelper:QR Code Helper

到目前为止,我只是从随机字符串开发一个简单的测试QR码。

在视图view.ctp中,我写道:

  echo $this->QrCode->text("ABCD"); // This generates a QR code image

在控制器中,我写道:

  public function view() {
      $this->response->type('Content-Type: image/png');
      $this->response->download('qrcode.png');
  }

当页面加载时,正在下载图像qrcode.png,但它显示错误:“Windows Photo Viewer无法打开此图片,因为Photo Viewer不支持此文件格式,或者您不喜欢t拥有Photo Viewer的最新更新“

照片查看器没有问题。

我知道之前曾问过类似的问题:CakePHP: download generated QR Code

但它没有解决我的问题。

任何帮助都会受到高度关注。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您使用过的QrCode Helper可能并不适合您的需求。帮助程序是为了帮助查看 - 它正确地执行但在这种情况下你想要/需要在控制器中使用帮助程序,这实际上不起作用(并且,使得事情变得更复杂的是这个特定的帮助程序返回内部的QRCode图像标签)。

使用PHP QR Code

,您可以相对轻松地实现这一目标

下载PHPQRCode并将/vendors/phpqrcode/中的文件放入Cake安装中,并在控制器中包含以下内容(注意:未经测试)

public function view($text = 'ABCD') {

    // Don't render a view file
    $this->autoRender = false; 

    // Tell the borwser to download the file (slug it, too)
    $this->response->download(Inflector::slug($text) . '.png');

    // Import the vendor lib
    App::import("Vendor", "phpqrcode/qrlib");

    // Bombs away
    QRcode::png($text);

}

有关PHP QR码的更多信息:http://phpqrcode.sourceforge.net/

答案 1 :(得分:1)

您可以在App / lib

下载您的Qr代码Librairie

使用的类的名称必须与文件的名称相同

并包含您的文件:

&GT?; 不是你可以简单地使用你的QR码。