[英]convert base64 string to image in php
我想將圖像轉換為字節數組並將此字節數組保存到我的數據庫中,然后再獲取該字節數組並在瀏覽器上打印
為此,我試圖在base64_encode()函數中傳遞圖像,這使我將此字符串傳遞給base64_decode()函數。但是圖像未顯示在這里,這是我的代碼,這是我存儲圖像字節數組的第一個文件
`
$demo="/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAg";
$data = base64_decode($demo);
$host="localhost";
$db="demo";
$password="";
$db_user="root";
$conn=mysqli_connect($host,$db_user,$password) or die("connection not stablished");
mysqli_select_db($conn,$db) or die("database not found");
$temp=mysqli_query($conn,"INSERT INTO imagetable (image)
VALUES ('".$data."')");
if($temp==TRUE)
{
echo "image inserted";
}
else
{
echo "image not inserted";
}
?>`這是我的第二個顯示圖像文件
`<?php
$db = mysqli_connect("localhost","root","","demo"); //keep your db name
$sql = "SELECT * FROM imagetable WHERE id=2";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
?>`
但它不會在瀏覽器上顯示圖像,而是給出錯誤
無法顯示,因為其中包含錯誤
您的代碼似乎可以正常工作(即使實際上沒有任何意義)。
就像@deceze已經說過的那樣,您不需要使用imagecreatefromstring()再次創建它,您只需要回顯輸出即可。
您的問題似乎是您沒有正確編碼圖片。 圖像的base64通常要大得多。 我使用19x19px JPG進行了測試,該圖片包含大約22000個字符。
您能告訴我們您如何編碼圖片並提供示例圖片嗎? 如果編碼正確,也許是沒有正確保存或從數據庫中正確檢索到它?
在你的例子中
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
應該解碼而不是編碼。 也許已經足夠了。
`
$db = mysqli_connect("localhost","root","","demo"); //keep your db name
$sql = "SELECT * FROM imagetable WHERE id=1";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
//$data = explode(',', $result['image']);
echo '<img src="data:image/jpeg;base64,'.$result['image'].'"/>';
?>`
第2行應讀取base64_encode($ demo);,而不是解碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.