Php MVC中的zend_条码
我只需要一个打印条形码图像的操作,但我无法在MVC中实现,我只需执行以下操作:Php MVC中的zend_条码,php,image,zend-framework,png,barcode,Php,Image,Zend Framework,Png,Barcode,我只需要一个打印条形码图像的操作,但我无法在MVC中实现,我只需执行以下操作: public function barcodeAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); Zend_Barcode::render($_GET['barcodeType'], 'image', $_GET, $
public function barcodeAction() {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
Zend_Barcode::render($_GET['barcodeType'], 'image', $_GET, $_GET);
}
但是当我打电话的时候
/barcode?barcodeType=code39&text=ZEND-FRAMEWORK
我刚刚得到:
无法显示图像,因为它有错误或类似错误,具体取决于浏览器。
谢谢 由于Zend_条形码发送的内容类型标题,您可能会收到一个无法看到的错误。确保已打开日志错误,并为日志配置了有效/可写的目标。通过这种方式,您可以检查错误日志,查看您通常会通过浏览器读取的任何内容
我对你的代码没有问题,我称之为url:在我的浏览器中,你的代码在IndexController中,我收到正确的图像 如果我放在一个视图中,我也有图像
米克尔我知道这可能已经过时了,但当我遇到同样的问题时,我只是补充了一下
ob_clean();
在我的控制器中,现在我的操作如下所示
public function generateBarcodeAction() {
ob_clean();
$number = $this->params()->fromRoute('number');
$barcodeOptions = array('text' => $number);
$rendererOptions = array('imageType'=>'png');
Barcode::render(
'ean13', 'image', $barcodeOptions, $rendererOptions
);
}
它工作起来很有魅力谢谢,但是Zend_Barcode将内容类型正确地设置为image/png,正如您在中看到的,但这似乎只发生在MVC中,因为调用这一行:Zend_Barcode::render$_GET['barcodeType'],'image',$_GET,$_GET;在公用文件夹中的文件中工作就像一个符咒。。。正如你在书中看到的。谢谢您是否验证了错误输出设置?我提到内容类型是由Zend_条形码设置的,这意味着浏览器需要图像数据。如果PHP向浏览器发送一个字符串错误消息,浏览器会认为它是一个损坏的图像,它会引起你在你的问题中提到的消息,因为它期望的是基于内容类型而不是字符串数据的图像。您可以通过告诉PHP不要显示错误,而是将错误记录到一个文件中来纠正这一点。这样你就能知道发生了什么。见我的原始答案上面的链接