Как конвертировать BLOB-изображение для отображения на веб-странице - PullRequest
2 голосов
/ 26 июня 2019

Я пытаюсь преобразовать тип данных BLOB, который я вставил, для отображения на моей веб-странице

Я пытался использовать basecode64, но он не работает

<td> <img src='data:image/jpg;base64,".base64_encode($photo->image)."'/></td> ;

добавление в базу данных

echo $imagename=$_FILES["myimage"]["name"]; 

//Get the content of the image and then add slashes to it 
$imagetmp=addslashes (file_get_contents($_FILES['myimage']['tmp_name']));

$photo_image->auditID = $auditID;
$photo_image->critID = $critID;
$photo_image->image = $img;
$photo_image->image_name = $imagename;

$dao->add($photo_image);

извлечение из базы данных

public  function retrieveName($photo_image) {
        $sql = 'select * from audit_trans_photo where auditID=:auditID and critID=:critID';
        $result = array();

        $connMgr = new ConnectionManager();
        $conn = $connMgr->getConnection();

        $stmt = $conn->prepare($sql);
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $stmt->bindParam(':auditID', $photo_image->auditID, PDO::PARAM_INT);
        $stmt->bindParam(':critID', $photo_image->critID, PDO::PARAM_INT);

        $stmt->execute();

        if($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $result = new Audit_Trans_Photo($row['auditID'], $row['critID'], $row['image'], $row['image_name']);
        }

        return $result;
    }

редактирование-view.php

 $dao3 = new Audit_Trans_PhotoDAO();
 $photo_image = new Audit_Trans_Photo();
 $photo_image->auditID = $auditID;
 $photo_image->critID = $n_transaction->critID;

 $photo  = $dao3->retrieveName($photo_image);
 $image_p = $photo->image;

 echo <td> <img src='data:image/jpg;base64,".base64_encode($photo->image)."'/></td> ;

Это просто показывает разбитое изображение.

Ответы [ 3 ]

1 голос
/ 26 июня 2019

Попробуйте вернуть изображение как array.Я думаю, что вы делаете, поэтому попробуйте следующее,

echo '<img src="data:image/jpeg;base64,'.base64_encode( $photo->image['image'] ).'" />';

Поскольку вы используете addslashes в этом утверждении,

$imagetmp = addslashes (file_get_contents($_FILES['myimage']['tmp_name']));

Вы должны добавить stripslashes при отображенииизображение, подобное этому,

echo '<img src="data:image/jpeg;base64,'.base64_encode(stripslashes($photo->image)).'" />';

А также я не вижу, чтобы вы вставляли $imagetmp в любом месте.Когда я проверил ваш base 64 string, он показывает сломанное изображение.Поэтому я предполагаю, что ваше изображение загружается неправильно.

0 голосов
/ 26 июня 2019
$db = mysqli_connect("localhost","root","password","yourdbname");
$sql = "SELECT * FROM products WHERE id = $id";
$sqlData = mysqli_query($db, $sql);
$result=mysqli_fetch_array($sqlData);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
0 голосов
/ 26 июня 2019

попробуйте

echo '<img src="data:image/jpeg;base64,'.base64_encode($photo->image) .'" />';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...