PHP:从其他PHP脚本获取镜像


PHP: Obtaining image from other PHP script

我用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时,我的web浏览器显示了一个图像。

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

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

但这种方法行不通。它不显示图像或产生其他问题。

我应该选择什么方法来完成这个工作?我是新的php通常与Java EE工作。非常感谢。

编辑:

当然,在echo中应该有"and not only"。但是我在这里写的这个方法很好。问题是语法,我有一个额外的)。

将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类型,最后包括RFC2557声明的getimage脚本的输出:

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

应该可以解决这个问题。