1

我有一种 用 php 编写的控制器http://samplesite.com/application/getimage 。它是一个简单的脚本,用一些参数响应 GET。根据这些参数,我在数据库中找到了一个图像(图像作为 BLOB 存储在那里),我将其返回如下:

header("Content-type: image/jpeg");
echo $image;

$image是从数据库中获取的图像的 BLOB。当我打开这个 URL http://samplesite.com/application/getimage/?id=200 我的网络浏览器显示一个图像。

现在我想在另一个 php 脚本的表格中显示这个图像。我想像

echo "<img src="http://mysite.com/application/getimage/?id=200" ...some params here... />";

但这种方法不起作用。它不显示图像或产生其他问题。

我应该选择什么方法来完成这项工作?我是 php 新手,通常使用 Java EE。非常感谢。

编辑: 当然里面应该有 echo \" 而不仅仅是 ". 但是我在这里写的这种方法效果很好。问题出在语法上,我有一个额外的)。

4

1 回答 1

3

将 PHP 文件作为图像传递(不推荐)

您的问题是您没有逃脱语音标记,请替换:

echo "<img src="http://mysite.com/application/getimage/?id=200" ...some params here... />";

和:

echo "<img src='http://mysite.com/application/getimage/?id=200' ...some params here... />";

或者:

echo "<img src=\"http://mysite.com/application/getimage/?id=200\" ...some params here... />";

但是,有一种更好的方法可以做到这一点:

正确使用图像 BLOB

您走在正确的轨道上——您可以使用图像 BLOB 而不是文件来将图像内联,但还有一些工作要做。首先,您需要在base64_encode通过 blob 之前对其进行处理。您应该在传递文本而不是图像时省略标题:

echo base64_encode($image);

接下来,您需要像这样设置图像标签,声明您正在使用数据、mime 类型,最后包括RFC2557getimage声明的脚本输出:

<img src="data:image/jpeg;base64,<?php include('http://mysite.com/application/getimage/?id=200'); ?>"/>

那应该可以解决问题。

于 2013-06-07T11:26:09.417 回答