2013-10-04 60 views
0

我是新來的php & mysql我試圖將用戶映像保存到MySql數據庫。 我看到的php.net保存圖像文件在MySql

<?php 
    $data = file_get_contents('path/to/image.jpg'); 
    $data = base64_encode($data); 

    //after reading data would be like this 
    $data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl' 
     . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr' 
     . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r' 
     . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg=='; 

    $data = base64_decode($data); 

    $im = imagecreatefromstring($data); 
    if ($im !== false) { 
     header('Content-Type: image/png'); 
     imagepng($im); 
     imagedestroy($im); 
    } 
    else { 
     echo 'An error occurred.'; 
    } 
?> 

它的工作原理是解決辦法,但我沒有得到如何存儲在MySql數據庫「$ DATA」的價值。我應該爲我的領域採取varchar數據類型,什麼是varchar的最大限制?

這是正確的方式或有更好的方法,那麼如果是的話,那麼他們是什麼?

+1

爲什麼當你只能將圖像存儲在文件夾中時,會用圖像數據膨脹你的桌子?當需要檢索圖像時,處理速度更快,處理更少。 – j08691

+0

人們大多隻保存鏈接到數據庫中的圖像,其相當快... – JTC

+0

@ j08691:你是對的,但它顯示了html上的目錄結構,所以我正在嘗試這個。 –

回答

1

您可以使用文本。 然後你不需要定義最大長度。因爲base64編碼的字符串可能相當長,因爲它是一個很大的圖像。

另一個解決方案是存儲圖像路徑。