[英]base64 decoding doesn't work
我正在嘗試使用PHP在HTML表中顯示來自mysql數據庫的圖像。 當我將圖像作為BLOB存儲在數據庫中時,我使用以下base64函數將其從二進制轉換並正確顯示:
$enc=base64_encode($image);
$dec=base64_decode($enc);
echo $dec;
這是完整的PHP代碼:
<?php
// Konexio lokala sortu
$sql = mysql_connect('localhost', 'root', '') or die(mysql_error());
// Konexioa lokala egiaztatu
mysql_select_db("quiz") or die(mysql_error());
$sql="SELECT * FROM `Erabiltzaile`";
$records = mysql_query($sql);
if (! $records)
{
die('Errorea: ' . mysql_error());
}
mysql_close();
?>
<html>
<head>
<title>Erabiltzaileak</title>
</head>
<body>
<table width="800" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>Izena</th>
<th>E-posta</th>
<th>Pasahitza</th>
<th>Telefonoa</th>
<th>Espezialitatea</th>
<th>Interesak</th>
<th>Argazkia</th>
<tr>
<?php
while($erabiltzaile=mysql_fetch_assoc($records)) {
echo "<td>".$erabiltzaile['Izena']."</td>";
echo "<td>".$erabiltzaile['Eposta']."</td>";
echo "<td>".$erabiltzaile['Pasahitza']."</td>";
echo "<td>".$erabiltzaile['Telefonoa']."</td>";
echo "<td>".$erabiltzaile['Espezialitatea']."</td>";
echo "<td>".$erabiltzaile['Interesak']."</td>";
$image = $erabiltzaile['Argazkia'];
echo "<td>";
$enc=base64_encode($image);
$dec=base64_decode($enc);
echo $dec;
echo "</td>";
echo "</tr>";
}
?>
</table>
</body>
這是我的第一個問題,希望問題的格式正確。 對不起,巴斯克語中的單詞(Argazkia表示圖片)。
將base64代碼放入<img>
標記中的data:
URI中:
$type = getimagesizefromstring($image);
$enc = base64_encode($image);
echo "<td>";
echo "<img src='data:" . $type['mime'] . "';base64," . $enc . "'>";
echo "</td>";
getimagesizefromstring
在PHP 5.4+中可用。 如果您使用的是舊版本,則可以在此處找到一個polyfill。
我終於做到了這一點:
$enc = base64_encode($image);
echo "<td>";
echo '<img src="data:image/;base64,' . $enc . '"/>';
echo "</td>";
沒有$type = getimagesize($image);
感謝您的所有評論和Barmar的答案! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.