CakePHP 2.x二维码生成和下载



目标:

为一组字符串生成二维码图像并下载。

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

我从以下链接使用了QrCodeHelper:QR CodeHelper

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

在视图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照片查看器无法打开此图片,因为照片查看器不支持此文件格式,或者您没有照片查看器的最新更新"

照片查看器没有问题。

我知道之前也有人问过类似的问题:CakePHP:下载生成的二维码

但这并没有解决我的问题。

任何帮助都是高度专业化的。

提前感谢!

您使用的QrCode Helper可能不太适合您的需要。helper是用来帮助处理视图的——它做得很正确,但在这种情况下,你希望/需要在控制器中使用helper,这并不能真正起作用(而且,更复杂的是,这个特定的helper在图像标记中返回QRCode)。

通过使用PHP二维码,您可以相对容易地实现这一点

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

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二维码的更多信息:http://phpqrcode.sourceforge.net/

您可以在App/lib 中下载您的Qr代码Librairie

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

并包括您的文件,如:

?>不是你可以简单地使用你的QRcode。

最新更新