0

私はphpが初めてです。列id(INT)とimage(BLOB)を持つtestdbという名前のテーブルがあるというサンプルmysql dbがあります。画像をtestdbにアップロードしました。正常にアップロードされました。以下はphpコードです。変数 $conn には、接続の詳細が含まれています。送信時にこのphpページにリダイレクトするhtmlページがあります。

<?php
$name = $_FILES["sample"]["name"];
echo $name . "<br/>";

$tmp_name = $_FILES["sample"]["tmp_name"];
echo $tmp_name . "<br/>";

$size = $_FILES["sample"]["size"];
echo $size . "<br/>";

$contents = file_get_contents($tmp_name);
$htmlen = htmlentities($contents);
$cont = mysql_real_escape_string($contents);

$query = "INSERT INTO testdb(image)
      VALUES ('$cont')";
$dbquery = mysql_query($query, $conn);
if($dbquery){
    echo "successfully inserted";
    }
else{
    echo "could not inserted" . mysql_error();
    }
?>

次のコードで画像を取得しようとしています。しかし、画像ではなく文字列の文字が表示されています。私の知る限り、これはうまくいくはずです。

<?php
$query = "SELECT image, id
    FROM testdb ";
$dbquery=mysql_query($query , $conn);
if(! $dbquery){
    echo "Could not selected the data from database. " . mysql_error();
}
while( $row = mysql_fetch_array($dbquery) ){
    $decodeimg = html_entity_decode($row["image"]);
echo "<img src= $decodeimg/><br/> hellow orld <br/>";
}
?>

誰でもこれで私を助けてくれますか?前もって感謝します。

4

2 に答える 2

0

実際の画像をデータベースに保存する代わりに (おそらくサーバーにも保存されているため、冗長です); 画像への PATH を文字列として保存し、データベースから文字列をクエリしてから、php で「src」属性に追加してみませんか。

于 2013-07-24T02:06:44.580 に答える
-1

BLOB imageDBから表示するときにも同じエラーが発生します。この問題にはデコード方法を使用するだけです....

$photo=$myrow['image'];    
echo '<img src="data:image/jpeg;base64,' . base64_encode( $photo ) . '" width="150" height="150" />
于 2013-07-24T05:56:20.550 に答える