2014-10-06 149 views
1

將圖像作爲Blob類型保存在數據庫中。 但我無法在下面顯示這些圖像,我會給出拖放圖像的代碼。將數據庫中存儲的圖像顯示爲blob type.in PHP?

它會給出一些像特殊符號代碼的輸出......如何正確顯示圖像。我是新來php.``

<?php 
while($row = mysql_fetch_assoc($result)){ 
    $type=$row['type']; 
    header("content-type : $type"); 
    echo $row['src']; 
} 
?> 

回答

0

你需要BASE64_ENCODE

echo '<img src="data:image/jpeg;base64,'.base64_encode($row['src']).'"/>'; 

而只是一個建議,它更容易儲存在服務器上的圖像和數據庫不是保存圖像名稱進行比賽

+0

好吧。作爲一個新的精簡者,我只是嘗試這種方法也 – user3789039 2014-10-06 07:04:19

+0

如果它幫助請接受我的回答 – 2014-10-06 07:06:20

+0

現在它不會顯示特殊的字符添加base64_encode。但沒有圖像顯示在瀏覽器中。 – user3789039 2014-10-06 07:06:39

0

您需要先閱讀圖像文件,然後才能回顯圖像。我在下面粘貼了一個示例代碼。

<?php 
function base64_encode_image ($filename=string,$filetype=string) { 
    if ($filename) { 
    $imgbinary = fread(fopen($filename, "r"), filesize($filename)); 
    return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); 
    } 
} 
?> 
<img src="<?php echo base64_encode_image('img.png','png'); ?>"/> 
0

不要使用base64_encode(),它不與大多數瀏覽器玩好。相反,做一些像這樣:

文件main.php(可能是純HTML):

<img src="image.php?id=5"/> 

文件image.php

// replce this with your db-loading code 
$image = read_from_db((int)$_GET['id']); 

// important: this tells the client what kind of image you have 
header('Content-Type: ' . $image->mime); 

// give the browser an indication of the size of the image 
header('Content-Length: ' . strlen($image->data)); 

// TODO Put other useful headers here 

// send the actual image data to the browser 
echo $image->data; 
相關問題