2012-05-31 8 views
0

Я хочу загрузить изображение с одного сервера и хочу сохранить данные binery в поле blob mysql. но он не работает.Как сохранить двоичные данные в MySQL с помощью PHP?

  1. Если я показываю $ picture1, тогда он отображает нечитаемые символы. byt $ picture2 не отображается.

  2. Если я попытаюсь сохранить его в таблице, то его не сохранить в таблице.

Как я могу сохранить это в своем поле blob.

$picture1 = GetImageFromUrl($url); 
$picture2 = addslashes(fread(fopen($picture, "r"), filesize($picture))); 

print_r($picture1) 
print_r($picture2) 

function GetImageFromUrl($link) 
{ 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch,CURLOPT_URL,$link); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result=curl_exec($ch); 
curl_close($ch); 
return $result; 
} 

ответ

1

Попробуйте кодирующая его base64 перед сохранением в вашем поле базы данных:

echo base64_encode($picture1); 

И читать из базы данных, вам необходимо декодировать:

echo base64_decode($picture); 

Но обязательно отправьте правильные заголовки вместе с ним, например:

header('Content-Type: image/png'); 

Но, пожалуйста, прочтите это ранее: Storing Images in DB - Yea or Nay? и подумайте, действительно ли вы хотите сохранить его в своей базе данных.

Я категорически против этого, но это в вашей власти

+0

Кроме того, имейте в виду, что размер base64 кодированные данные примерно 1,37 раза больше, чем размер исходных данных. –

+0

его отображение двоичных кодов, но не сохранение его в базе данных. –

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