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>

上記のコードは、mysql に BLOB 形式で既にアップロードされている、対応する 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

複数の画像を同じ応答に出力しないでください。2 つの jpg ファイルを同じファイルにコピーしてもデスクトップでは機能しないのと同じように、Web ブラウザは最初の画像の後に別の画像を期待/認識しません。

代わりに、画像へのすべてのリンクを含む別の (動的) ページを作成します ( <img src="img.php?id=3">)。Web ブラウザは、一度に 1 つずつ画像を要求します。

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

(上記のようなコードは実際には安全ではないことに注意してください。パブリック環境の SQL クエリで入力値を直接使用しないでください。クエリを実行する代わりに PDO を使用することもお勧めします)。

于 2013-02-04T10:14:10.620 に答える