>데이터 베이스 >MySQL 튜토리얼 >다른 출력이 있을 때 MySQL BLOB 이미지가 잘못 표시되는 이유는 무엇입니까?

다른 출력이 있을 때 MySQL BLOB 이미지가 잘못 표시되는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-24 05:34:13890검색

Why Does My MySQL BLOB Image Display Incorrectly When Other Output Is Present?

MySQL BLOB 열의 이미지 표시 및 추가 출력 처리

아래 제공된 코드 샘플에서 BLOB 변수로 저장된 이미지는 MySQL 데이터베이스가 표시되고 있습니다. 그러나 이미지 전후에 추가 텍스트가 출력되면 잘못된 표시가 발생하는 경우가 있습니다.

<?php

include("inc/library.php");

connectToDatabase();

$sql = "SELECT * FROM theBlogs WHERE ID = 1;";

$result = mysql_query($sql) or die(mysql_error());  
$row = mysql_fetch_array($result);

header("Content-type: image/jpeg");
echo $row['imageContent'];
$db->close();

?>

이 문제를 해결하려면 이미지 데이터가 다음과 같이 처리된다는 점을 이해해야 합니다. 바이너리 스트림. 이미지 전후에 텍스트를 출력하면 바이너리 데이터가 중단되고 표시 문제가 발생합니다.

해결책은 이미지 데이터를 base64 형식으로 변환하고 HTML 이미지 태그에 포함시키는 것입니다. 이 접근 방식을 사용하면 이미지 데이터를 다른 출력에서 ​​분리할 수 있습니다.

echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />';
echo 'Hello world.';

이 방법은 작동하지만 성능과 캐싱에는 적합하지 않습니다. 이미지 데이터를 보다 효율적으로 처리하려면 적절한 이미지 호스팅 서비스나 데이터베이스 캐싱 메커니즘을 사용하는 것이 좋습니다.

위 내용은 다른 출력이 있을 때 MySQL BLOB 이미지가 잘못 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.