MySQL 데이터베이스에서 BLOB 이미지 표시
MySQL 데이터베이스에서 BLOB 이미지를 표시하려는 과정에서 다음 문제가 발생했습니다. PHP 페이지는 이미지를 실제 이미지 대신 바이너리 데이터로 표시합니다. 이 문제를 해결하기 위한 솔루션을 자세히 살펴보겠습니다.
표시되는 오류는 적절한 "Content-Type" 헤더 선언이 부족하여 발생합니다. 이 헤더는 응답의 예상 데이터 유형을 브라우저에 알립니다. 귀하의 경우 응답이 "image/jpeg" 유형의 이미지임을 지정해야 합니다.
인라인 Base64 인코딩(제한된 이미지에 권장)
의 경우 이미지 수가 적은 경우 인라인 base64 인코딩을 활용할 수 있습니다. 구현 방법은 다음과 같습니다.
echo '<dt><strong>Technician Image:</strong></dt><dd>' . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">' . '</dd>';
이미지 PHP 파일 만들기(이미지가 많은 경우 권장)
표시할 이미지 수가 많은 경우, 더 나은 접근 방식은 이미지 검색 및 출력을 처리하는 별도의 PHP 파일을 만드는 것입니다. HTML 및 PHP 파일은 다음과 같습니다.
HTML:
<img src="image.php?id=<?php echo $image_id; ?>" />
PHP:
<?php $id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0; $image = getImageFromDatabase($id); // your code to fetch the image header('Content-Type: image/jpeg'); echo $image; ?>
"Content-Type" 헤더를 올바르게 지정하면 브라우저에 데이터를 이미지로 렌더링하도록 지시하여 문제를 해결할 수 있습니다. 디스플레이 문제입니다.
위 내용은 PHP에서 MySQL 데이터베이스의 BLOB 이미지를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!