使用Zend Framework 1渲染图像

时间:2016-01-11 22:01:46

标签: php apache zend-framework nginx

准备好以下代码:

$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$image = ...
$this->getResponse()->setHeader('Content-type', 'image/png');
imagepng($image);
imagedestroy($image);

这会在服务器上生成损坏的图像,但在localhost上正常工作。

即使该代码在行动中也会产生损坏的图像:

header("Content-Type: image/png");
echo file_get_contents('.../test.png');

我也尝试过这两行:

    index.php中的
  1. :它运行正常
  2. 在Zend_Controller_Action中:它响应破碎的图像

1 个答案:

答案 0 :(得分:2)

public function imgAction()
{
    $this->_helper->layout->disableLayout();

    $img = file_get_contents("Your Image");
    $type = 'image/png';

    $response = $this->getFrontController()->getResponse();

    $response->setHeader('Content-Type', $type, true);
    $response->setHeader('Content-Length', count($img), true);
    $response->setBody($img);

    $response->sendResponse();
    exit;
}

该示例来自http://zend-framework-community.634137.n4.nabble.com/Outputting-an-image-td655625.html#d1224890879000-12