0

我有一组图像作为从数据库中提取的字符串,我通过 ajax 调用将它们拉入浏览器。我已经设置了控制器操作,并且能够查看带有关联数据的图像数组,但是当我尝试通过迭代数组并在每个字符串之前使用标题来渲染图像时,只显示第一个图像。我假设这是因为浏览器无法确定每个图像字符串的长度,或者 Zend 先发送标头然后发送图像数据,我不确定。我尝试了多种封装、输出缓冲等方法,但均以 0 成功。

我们试图避免将这些图像保存在磁盘上,否则我只需存储路径和 id 并将其反映在视图助手中。这里有我想念的明显方法吗?或者可能是我不知道的 Zend 的一个功能来促进我正在尝试做的事情?

更新:我在下面添加了我最终得到的解决方案。

4

3 回答 3

0

您不能通过一个HTTP请求返回更多图像。

在您的设置中,我可以想象以下解决方案:

  • 返回更多图像的数据作为自定义结构 - 例如json对象,XML文档......并将它们放置在正确的HTML元素中,使用JavaScript
  • 将图像内联在页面HTML生成过程中HTML

可以有其他解决方案...

于 2012-12-07T17:47:18.857 回答
0

您可以在 **.phtml 中使用它

<?php foreach($this->images as $image) :?>
  <img src="data:image/jpeg;base64,<?php echo base46_encode($image['code']) ;?>/>
<? endforeach; ?>

或数据:图像/png 或数据:图像/gif

于 2012-12-09T17:30:50.923 回答
0

我最终选择了一个相当简单的解决方案;在同一个控制器中创建两个动作。第一个为图像构建标记,迭代从模型函数创建的数组,该函数为特定客户端/事件提取所有图像,这将产生:

<img src="/controller/action/imgKey/12345/" />

第二个动作是接受图片的资源请求,通过_request->getParam()获取imgKey;然后为每个图像提供标题和字符串。这使我能够利用已经在使用的用户身份验证和会话方案。也许这种方法对其他人有用。

于 2012-12-10T14:51:56.540 回答