0

php

include("connect_to_database.php");

if( !isset($_FILES["image"]) ){

echo "upload the file";

}else{
$image = mysql_query("SELECT * FROM upload WHERE id=1");
$image = mysql_fetch_assoc($image);
$image = $image["image"]; 
echo $image;
}

html

<form action="newindex.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" value="Upload" >
</form>

上面的代码显示了已经以 BLOB 格式上传到 mysql 中的相应 id 的图像。

现在,我需要显示最后 6 个 id 的图像或数据库中的所有图像。我已经尝试了下面的代码,但它不起作用,而是显示 1 张图像。

php

include("connect_to_database.php");<br>

$query = mysql_query("SELECT * FROM upload ORDER BY id DESC");

while( $rows = mysql_fetch_array($query) ){
$image = $rows["image"]; 
header("Content-type: image/jpeg");
echo $image."<br/>";
}
4

1 回答 1

2

您不应该将多个图像输出到相同的响应中。网络浏览器不会期望/理解第一个图像之后的另一个图像,就像将两个 jpg 文件复制到同一个文件中一样在桌面上不起作用。

相反,创建另一个(动态)页面,其中包含指向图像的所有链接 ( <img src="img.php?id=3">)。然后,Web 浏览器将一次请求一个图像。

$id = (int)$_REQUEST['id'];
$query = mysql_query("SELECT * FROM upload WHERE id=$id");

(请注意,与上面类似的代码确实不安全,永远不要在任何公共环境中的 SQL 查询中直接使用输入值。我还建议使用 PDO 代替执行查询)。

于 2013-02-04T10:14:10.620 回答