gpt4 book ai didi

zend-framework2 - Zend Framework - 使用 Controller 返回图像/文件

转载 作者:行者123 更新时间:2023-12-04 07:09:10 25 4
gpt4 key购买 nike

我是 Zend Framework 2 的新手,只知道一点基础知识。我也发现很难找到很多例子。

问题:获取数据库中的 BLOB 字段并通过 Controller 显示它。例如:www.mysite.com/images/2 将从数据库中检索一个 BLOB 并将其作为图像显示给用户,这样一个 html 标签如 <img src="http://www.mysite.com/images/2"/>将显示图像。

我通常在 ASP.NET MVC 中执行此操作,但不知道如何在此处执行此操作。如果有人能启发我如何实现它,我会很高兴。

假设我已经从数据库中获取了图像。

我设法找到了返回 JSON 的方法,并相信像这样简单的事情会奏效。但是找不到解决方案。我还需要发送这样的文件。

public function displayAction()
{
$id = 10;
$albumImage = $this->getAlbumImageTable()->getAlbumImage($id);

if ($albumImages){
//Show the image $albumImage
//return JsonModel(array(...)) for json but for image ???
} else{
//Show some other image
}
}

如果有人能提供帮助,我将不胜感激。

提前致谢。

最佳答案

从 Zend Framework 2.0 到 2.1

如果你想返回一个图像,只需返回填充了内容的响应对象:这将告诉 Zend\Mvc\Application 完全跳过 Zend\Mvc\MvcEvent::EVENT_RENDER 事件并转到 Zend\Mvc\Application::EVENT_FINISH

public function displayAction()
{
// get image content
$response = $this->getResponse();

$response->setContent($imageContent);
$response
->getHeaders()
->addHeaderLine('Content-Transfer-Encoding', 'binary')
->addHeaderLine('Content-Type', 'image/png')
->addHeaderLine('Content-Length', mb_strlen($imageContent));

return $response;
}

这将导致应用程序 short-circuitZend\Mvc\Event::EVENT_FINISH,后者又能够将响应发送到输出。

关于zend-framework2 - Zend Framework - 使用 Controller 返回图像/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14810805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com