복붙노트

PHP는 이미지를 MySQL에서 MySQL의 BLOB를 표시 [중복]

PHP

PHP는 이미지를 MySQL에서 MySQL의 BLOB를 표시 [중복]

데이터베이스의 BLOB 열에 저장된 이미지를 표시하려고합니다.

SELECT를 사용하여 데이터베이스에서 데이터를 가져 와서 데이터에 대한 변환을 수행하지 않고 다음과 같이 출력합니다 (출력 만 다음과 같은 스크립트에서).

header("Content-Type: image/jpeg");
echo $image;

Chrome은 콘텐츠 크기를 이미지의 올바른 크기와 올바른 MIME 유형 (이미지 / JPEG)으로 표시합니다. 헤더와 ive가 데이터베이스의 BLOB가 올바른지 확인하기 전에 아무 것도 울리지 않습니다. 태그의 앞이나 뒤에 공백 문자도 없다.

chrome / IE는 이미지 아이콘을 표시하지만 이미지 자체는 표시하지 않습니다. 어떤 아이디어?

편집 : 이미지 같은 데이터베이스에서 있어요 :

$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$row = $sth->fetch();
$image = $row['image'];

var_dump ($ image)는 다음을 제공합니다 :

string 'ÿØÿà�JFIF��x�x��ÿá�ZExif��MM�*�����������J��������Q�������Q������tQ������t�����† ��±ÿÛ�C�       

ÿÛ�CÿÀ�_"�ÿÄ����������� 
ÿÄ�µ���}�!1AQa"q2‘¡#B±ÁRÑð$3br‚ 
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³    ´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ��������'... (length=60766)

해결법

  1. ==============================

    1.이렇게 해봐.

    이렇게 해봐.

    DB에 삽입하기

    $db = mysqli_connect("localhost","root","","DbName"); //keep your db name
    $image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
    //you keep your column name setting for insertion. I keep image type Blob.
    $query = "INSERT INTO products (id,image) VALUES('','$image')";  
    $qry = mysqli_query($db, $query);
    

    Blob에서 이미지에 액세스하는 경우

    $db = mysqli_connect("localhost","root","","DbName"); //keep your db name
    $sql = "SELECT * FROM products WHERE id = $id";
    $sth = $db->query($sql);
    $result=mysqli_fetch_array($sth);
    echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
    

    희망은 당신을 도울 것입니다.

    감사.

  2. ==============================

    2.이것은 내가 BLOB에서 이미지를 표시하는 데 사용하는 것입니다.

    이것은 내가 BLOB에서 이미지를 표시하는 데 사용하는 것입니다.

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

    3.blob 필드 / 열에 다양한 유형의 내용을 저장해야하므로 다음과 같이 코드를 업데이트해야합니다.

    blob 필드 / 열에 다양한 유형의 내용을 저장해야하므로 다음과 같이 코드를 업데이트해야합니다.

    echo "data: $mime" $result['$data']";
    

    어디에: MIME은 모든 종류, 텍스트, 단어 문서, 텍스트 문서, PDF 문서, e.t.c의 이미지가 될 수 있습니다 ... 데이터는 BLOB의 열 내용입니다.

  4. from https://stackoverflow.com/questions/20556773/php-display-image-blob-from-mysql by cc-by-sa and MIT license