2013-04-10 3 views
0

Я сохранил несколько изображений в моей базе данных, и теперь я пытаюсь их восстановить. Способ, которым мой скрипт настроен, - это то, что у одного пользователя будет выбор информации и изображений для этого. Поэтому приведенный ниже код показывает, как будет отображаться изображение вместе с ценой, автомобилем и деталями. В настоящее время изображения не отображаются, и я получаю одну из этих вопросительных знаков в ошибке формы бриллианта. Есть идеи?Хранение изображений в PHP

Изображения в базе данных хранятся в виде больших двоичных объектов, MIME-тип изображения/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> 
+0

Уверены ли, у вас действительно есть эти изображения в этой папке? –

+0

Да, потому что я загрузил их из папки в базу данных – user2236990

+0

Вы правильно загружаете значения для '$ row'? –

ответ

0

Вы хранящего имя файла или сам файл? Если это фактический файл, вам нужно написать сценарий для получения данных из БД и представить его как вывод. Что-то вроде:

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

0

Для отображения изображений в формате HTML необходимо использовать тег IMG. Src данных изображения должен быть URL-адресом.

Вы не можете просто вернуть данные и ожидать их отображения. Обычно люди пишут отдельный скрипт, который просто возвращает данные изображения с типом mime, установленным с помощью функции header().

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

Это предполагает, что вы фактически храните данные изображения в двоичном поле в таблице базы данных.

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. Просто сохраните их в виде файлов и сохраните только имена файлов в базе данных.

Смежные вопросы