PHP는 이미지를 MySQL에서 MySQL의 BLOB를 표시 [중복]
PHPPHP는 이미지를 MySQL에서 MySQL의 BLOB를 표시 [중복]
데이터베이스의 BLOB 열에 저장된 이미지를 표시하려고합니다.
SELECT를 사용하여 데이터베이스에서 데이터를 가져 와서 데이터에 대한 변환을 수행하지 않고 다음과 같이 출력합니다 (출력 만 다음과 같은 스크립트에서).
header("Content-Type: image/jpeg");
echo $image;
Chrome은 콘텐츠 크기를 이미지의 올바른 크기와 올바른 MIME 유형 (이미지 / JPEG)으로 표시합니다. 헤더와 ive가 데이터베이스의 BLOB가 올바른지 확인하기 전에 아무 것도 울리지 않습니다. php?> 태그의 앞이나 뒤에 공백 문자도 없다.
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.이렇게 해봐.
이렇게 해봐.
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.이것은 내가 BLOB에서 이미지를 표시하는 데 사용하는 것입니다.
이것은 내가 BLOB에서 이미지를 표시하는 데 사용하는 것입니다.
echo '<img src="data:image/jpeg;base64,'.base64_encode($image->load()) .'" />';
-
==============================
3.blob 필드 / 열에 다양한 유형의 내용을 저장해야하므로 다음과 같이 코드를 업데이트해야합니다.
blob 필드 / 열에 다양한 유형의 내용을 저장해야하므로 다음과 같이 코드를 업데이트해야합니다.
echo "data: $mime" $result['$data']";
어디에: MIME은 모든 종류, 텍스트, 단어 문서, 텍스트 문서, PDF 문서, e.t.c의 이미지가 될 수 있습니다 ... 데이터는 BLOB의 열 내용입니다.
from https://stackoverflow.com/questions/20556773/php-display-image-blob-from-mysql by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
인코딩을 감지하고 모든 것을 UTF-8로 만듭니다. (0) | 2018.09.06 |
---|---|
SimpleXML : 특정 속성 값을 갖는 요소 선택하기 (0) | 2018.09.06 |
다차원 배열의 모든 열 값을 합하는 방법은 무엇입니까? (0) | 2018.09.06 |
PHP에서 POST의 시체를 얻는 방법? (0) | 2018.09.06 |
PHP 세션이 이미 시작되었는지 확인하십시오. (0) | 2018.09.06 |