2012-06-05 2 views
1

Я хочу отобразить изображение с помощью PHP-скрипта. Я получаю данные изображения из базы данных. Данные являются байтом []. Кто-нибудь знает, как это сделать?PHP получить изображение из байта [] из базы данных

Я попытался это еще:

function GetImage($imageDataArray) 
{ 
    $base64String = ""; 
    for($i = 0; $i < count($imageDataArray); $i++) 
    { 
     $string = trim(strtr(base64_encode($imageDataArray[$i]), '+/', '-_'), '='); 
     $base64String .= $string; 
    } 

    return 'data:image/png;base64,' . $base64String ; 
} 

И называют его здесь:

echo '<img src="'.$im->GetImage($imageDataArray).'" alt="Picture" />'; 

Но я не получаю результат. Изображение не отображается.

+0

взглянуть на следующие [Base64 закодированные изображения] [1] [1]: http://stackoverflow.com/ вопросы/3259967/send-display-a-base64-encoded-image –

+0

@Ummar: Я пробовал это так (см. мой код). Это не подходит. –

+0

Вы устанавливаете заголовок заголовка контента в image/png? как 'header (« Content-Type: image/png »);' –

ответ

1

Это может помочь вам Imagick::readImageBlob

+0

Спасибо за ваш ответ, но я не хочу использовать внешние библиотеки. –

0

избавиться от base64_encode() && use urlencode() || rawurlencode()

+0

@Ummar: Я думаю, что с urlencode() он не запускается. Я думаю, base64_encode() ошибочен, потому что я получаю такую ​​строку: _data: image/png; base64, MTM3ODANzgNzEMTMMTAMjYMTAMAMAMAMTMNzMNzINjgODIMAMAMAMTI4MAMAMAMTI4OANgMAMAMAMTK1NjIOTcM ..._ Я пробовал то же самое в ASP.NET MVC. У меня не было никаких проблем, и строка base64 отличается. –

Смежные вопросы