0

PHPで画像を表示する際に問題に直面しています。画像はmysqlのテーブル「images」に保存されています。これらの画像を取得し、restid に従ってそれぞれの画像を表示する必要がある別のテーブル「restaurant」があります。ただし、画像を取得して表示しないという問題に直面しています。助けてください!これは imageupload.php です:

<?php
require 'connect.inc.php';
?>
<html>
<head>
<title>Uploading image</title>
</head>
<body>
<?php
echo "<form action='imageupload.php' method='POST' enctype='multipart/form-data'>

Upload: <input type='file' name='image'><input type='submit' value='Upload' >
</form>";

if(isset($_FILES['image']['tmp_name']))

{
    $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);
    $image_size = getimagesize($_FILES['image']['tmp_name']);
    if($image_size==FALSE)
        echo "That's not an image";
    else
    {
        $query = "INSERT INTO images VALUES ('','$image_name','$image','22')";
        $result = mysqli_query($con, $query);

        if(!$result)
        {
            echo "Problem uploading";

        }
        else
        {
            echo "Image uploaded ";
            $query2 = "SELECT * FROM images WHERE restid = '22'";
            $result2 = mysqli_query($con,$query2);
            while($info = mysqli_fetch_array($result2))
            {
                header("Content-type: image/jpeg");
                echo $info['image'];
            }
        }
    }
}
else
{
    "Please upload a file";
}
 ?>
</body></html>

これは getimage.php です (画像を取得して表示します):

<?php
require 'connect.inc.php';
$id = $_REQUEST['id'];
$image = "SELECT * FROM images WHERE imgid = $id" ;
$image = mysqli_query($con, $image);
$image = mysqli_fetch_assoc($image);
$image = $image['image'];

header("Content-type: image/jpeg");
echo $image;
?>

connect.inc.php は、データベースに接続するためのファイルです。他のリンクを参照しましたが、確かな助けは得られませんでした。助けてください。

4

1 に答える 1

0

イメージを mysql に保存するとうまくいくはずです。構文エラーがないことを確認してください。Content-type ヘッダーを一時的に削除して、画像ファイルが (意味不明な文字列として) 印刷されることを確認します。また、画像を保存するmysqlフィールドがBLOBタイプであることを確認してください。そこにエラーがあれば投稿してください。

于 2013-09-22T19:53:21.777 に答える