2013-03-12 84 views
0

在網上找到幾個關於如何將圖像上傳到mysql數據庫表的示例,二進制 不是服務器中的鏈接或文件夾。php mysql將圖像上傳到數據庫

的IMAG是不可見的,當我嘗試打印

當我檢查數據庫中的表,它顯示了一堆怪異格式的數據,我假設的圖像數據

這裏用於顯示圖像

$sql = "SELECT * FROM `photos` WHERE userName = '$currentUser'"; 
    $result = mysqli_query($con,$sql); 
    while($row = mysqli_fetch_array($result)) 
    { 
     $content = $row['image']; 
     echo $content; 
     echo '<p id="caption">'.$row['caption'].' </p>'; 
    } 

當I TR代碼

if(!empty($_FILES['image']) && $_FILES['image']['size'] > 0 && !empty($_POST['name'])) 
{ 
    // Temporary file name stored on the server 
     $tmpName = $_FILES['image']['tmp_name']; 

// Read the file 
$fp = fopen($tmpName, 'r'); 
$data = fread($fp, filesize($tmpName)); 
$data = addslashes($data); 
fclose($fp); 

代碼y顯示圖像我沒有得到任何輸出,我通過膩子檢查數據庫,並且我看到大量奇怪的字符,我假設圖像的項目。

想法?

+1

'addslashes'已經不那麼好。 MySQLi支持參數化查詢 - 使用它們。另外,您不能只將圖像的字節輸出到HTML頁面,並期望它顯示爲圖像。 – Ryan 2013-03-12 21:52:20

+1

是的,將圖像存儲在文件系統中,數據庫中varchar的圖像路徑。 – michi 2013-03-12 21:52:40

+0

您不能將原始圖像內容回顯爲HTML。 – 2013-03-12 21:53:52

回答

2

你可能最終嘗試更換這兩行:
$content = $row['image']; echo $content;
有:
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" />';

+0

Dragos我閱讀那篇文章,它的工作更好,顯示一個小方塊,但沒有圖像仍然。它只能使用jpeg嗎?我如何做到這一點,以便超過1種類型的圖像可見 – user1050632 2013-03-12 22:00:00