Memaparkan Imej yang Disimpan dalam MySQL BLOB
Apabila cuba memaparkan imej yang disimpan sebagai BLOB dalam pangkalan data MySQL menggunakan PHP yang disediakan kod, pengguna telah menghadapi isu di mana mengeluarkan sebarang teks atau kandungan sebelum atau selepas imej mengakibatkan ralat paparan. Artikel ini menangani masalah ini dan membentangkan penyelesaian untuk memaparkan elemen tambahan di samping imej.
Kod asal:
<code class="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();</code>
Percubaan untuk menggemakan kandungan imej terus dalam halaman, tetapi menemui masalah jika kandungan lain dikeluarkan sebelum atau selepasnya.
Penyelesaian
Isu timbul kerana penyemak imbas menganggap sebarang teks atau kandungan di luar data imej sebagai sebahagian daripada imej itu. Untuk menyelesaikan masalah ini, data imej boleh ditukar kepada Base64 dan dibenamkan dalam tag.
<code class="php">echo '<img src="data:image/jpeg;base64,' . base64_encode($row['imageContent']) . '" />'; echo 'Hello world.';</code>
Penyelesaian ini menukar data imej kepada Base64 dan meletakkannya dalam tag, membenarkan imej dipaparkan dengan betul sambil membenarkan output kandungan tambahan pada halaman.
Nota: Walaupun pendekatan ini berfungsi, ia tidak optimum untuk prestasi dan caching. Adalah disyorkan untuk meneroka penyelesaian alternatif untuk memaparkan imej yang disimpan sebagai BLOB dalam pangkalan data MySQL, seperti menggunakan mekanisme caching atau pelayan imej luaran.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Imej yang Disimpan sebagai BLOB MySQL Bersama Kandungan Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!