用PHP存储图像

时间:2013-04-10 19:43:15

标签: php forms phpmyadmin

我在我的数据库中存储了几个图像,现在我正在尝试检索它们。我的脚本设置方式是一个用户可以选择的信息和图像。因此,下面的代码显示了图像如何与价格,汽车和细节一起显示。目前图像没有显示,我在钻石形状错误中得到其中一个问号。有什么想法吗?

数据库中的图像存储为BLOB,MIME类型image / jpeg

       form method="post" action="booked.php">
  <table>
  <?php while($row=mysql_fetch_assoc($result)) { ?>
    <tr>
      Images: <img style="width: 130px; height: 100px" alt="<?php echo $row['car']; ?>" src="image/<?php echo $row['img']; ?>" /></td>
      Car: <input type="text" name="car"  value="<?php echo $row['car']; ?>" readonly> 
      Details: <input type="text" name="details" value="<?php echo $row['details']; ?>" readonly>
      Price: <input type="text" name="price" value="<?php echo $row['price']; ?>" readonly>
      <input type="radio" name="selected_car" value="<?php echo $row['car']; ?>" /><br>
      <br /><br /><br />

    </tr>
  <?php } ?>

  </table>

3 个答案:

答案 0 :(得分:0)

您是存储文件名还是实际文件?如果是实际文件,则需要编写脚本以从DB获取数据并将其作为输出提供。类似的东西:

<?php $img = file_get_contents($row['img']); echo $img;

答案 1 :(得分:0)

要在html中显示图像,您需要使用img标记。图像数据的src需要是一个URL。

您不能只返回数据并期望它显示。人们通常编写一个单独的脚本,它只返回使用header()函数设置的mime类型的图像数据。

<img src="getimage.php?id=<?php echo $row['id'] ?>">

这假设您实际上是将图像数据存储在数据库表的二进制字段中。

答案 2 :(得分:0)

如果您确实要将所有图像数据粘贴到HTML中,则需要对其进行base64编码。看看这里: displaying an image stored in a mysql blob 但我强烈建议你像gview一样说:写一个单独的PHP脚本来获取图像。它必须看起来像这样:

<?php
    header('Content-type: image/jpeg');
    $id = $_GET["id"];
    ... get the image from database by $id and echo it ...
?>

......甚至更好 - 不要将图像存储为BLOB。只需将它们存储为文件,只将文件名存储在数据库中。