2011-05-17 152 views
0

是否有可能加载图像加载一个PHP的形象?使用使用SRC

image.php

$image_id = $_GET['image_id']; 
echo "image".$image_id.".png"; 
+0

不要你的意思是SRC?我只是纠正它。 – 2011-05-17 08:56:37

+0

对您的问题的回答是是 – 2011-05-17 08:57:33

+0

您确定要使用服务器资源来读取,然后回显图像吗?我不会那么肯定... – 2011-05-17 09:34:47

回答

5

你必须返回一个有效的图像,使用file_get_contentsreadfile用于获取图像的conent然后输出到浏览器

header("Content-Type:image/png"); 

    $image_id = $_GET['image_id']; 

    if(is_file($file = "image".$image_id.".png") || is_file($file = "no_image.png")) 
     readfile($file); 
+1

不要使用“text/html”内容类型提供图像。 – Quentin 2011-05-17 08:59:09

+1

输出仍然需要标题 – 2011-05-17 08:59:44

+0

或者,如果这不是为了隐藏真实图像位置,或者如果图像不是实时创建的,则可以很容易地使用“位置”标头重定向到图像。 (如果可以通过http访问) – Yoshi 2011-05-17 09:10:49

0

如果你有在巴新内容数据库,请按照其他答案。如果你需要的只是数据库中的ID,只需要<img src="image<?=$image_id?>.png">

0

不,这是不可能的。您必须将图像文件的内容写入输出流。

0

是否有可能加载图像使用: <img src="image.php?image_id=1">

是。网址是网址。内容类型决定内容,而不是URL本身的任何字符。

$image_id = $_GET['image_id']; echo "image".$image_id.".png";

不是那样的。您必须先读取图像文件,然后使用合适的内容类型输出,或将其重新定向(使用位置标题)至静态图像。

0

您必须更改标题内容类型并打印图像文件的内容。这是给你image.php文件的一个示例:

$image_id = $_GET['image_id']; 
$filename = "image".$image_id.".png"; 
header('Content-Type: image/png'); 
print file_get_contents($filename); 
0

一个衬垫....

echo (file_exists($_GET['image_id'])) ? header("Content-Type:image/png").readfile($_GET['image_id']).die() : false;