2014-01-29 109 views
1

我開始基於phpqrcode的CakePHP Helper。我的問題是,我無法獲得生成的PNG或SVG文件,並強制瀏覽器下載它。CakePHP:下載生成的QR碼

我想當一個人通過Ajax提交他的文本時,我爲他生成一個QR碼並強制瀏覽器下載它而不保存文件到服務器上。

這裏是助手的短例子:

App::import('Vendor', 'QRGenerator.phpqrcode'.DS.'qrlib'); 

class QRHelper extends AppHelper{ 

    function text($content= '') { 

     QRcode::png($content); 

    } 
} 

在我看來文件:

<?php $this->QR->text('example text'); ?> 

而且我的佈局:

<?php echo $this->fetch('content'); ?> 

感謝。

+0

嘗試以回報或回聲'QRCODE :: PNG($內容);''在文本()'。 –

回答

1

在你的控制器試試這個:

$this->response->type('Content-Type: image/png'); 
    $this->response->download('qrcode.png'); 
+0

沒有.png物理文件,幫助者直接向瀏覽器生成.png文件 –

+0

是的,我知道。我發佈的代碼只是設置響應的標題,以便下載文件,而不是在瀏覽器中顯示。 –

+0

感謝它工作的文件,但對於svg或eps文件,它生成0字節的文件! $ this-> response-> type('eps'); $ this-> response-> download('qrcode.eps'); 這是真的嗎? –

1

嘗試使用返回或回聲QRcode :: png($ content);在文本()

function text($content= '') { 

     return QRcode::png($content); 

    } 
+0

我已經試過,但我沒有工作 –

0

嘗試用QR Code Helper

  • 複製 「QrCodeHelper.php」 你的「應用程序/查看/助手「文件夾。

  • 在控制器中添加'QrCode'到你的helpers數組中。

  • 在視圖中這麼做:

    <? echo $this->QrCode->text('Hello World'); ?>