MySQL BLOB에 저장된 이미지 표시
제공된 PHP를 사용하여 MySQL 데이터베이스에 BLOB으로 저장된 이미지를 표시하려고 할 때 코드에서 이미지 전후에 텍스트나 콘텐츠를 출력하면 표시 오류가 발생하는 문제가 사용자에게 발생했습니다. 이 문서에서는 이 문제를 다루고 이미지와 함께 추가 요소를 표시하는 솔루션을 제시합니다.
원본 코드:
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로 변환하고 태그에 삽입할 수 있습니다.
echo '
';
echo 'Hello world.';
이 솔루션은 이미지 데이터를 Base64로 변환하고 태그에 배치하여 이미지가 올바르게 표시되는 동시에 페이지의 추가 콘텐츠 출력도 허용합니다.
참고: 이 접근 방식은 작동하지만 성능과 캐싱에는 적합하지 않습니다. 캐싱 메커니즘이나 외부 이미지 서버를 사용하는 등 MySQL 데이터베이스에 BLOB으로 저장된 이미지를 표시하기 위한 대체 솔루션을 탐색하는 것이 좋습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3