0

1 つのサーバーからイメージをダウンロードし、バイナリ データを mysql blob フィールドに保存したいと考えています。しかし、それは機能していません。

  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;
}
4

1 に答える 1

1

データベース フィールドに保存する前に、base64 でエンコードしてみてください。

echo base64_encode($picture1);

データベースから読み取るには、それをデコードする必要があります。

echo base64_decode($picture);

ただし、必ず正しいヘッダーを送信してください。たとえば、次のようになります。

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

しかし、前にこれを読んでください: DB に画像を保存する - うん、いや?本当にデータベースに保存するかどうかを検討してください。

私はそれに固く反対しますが、それはあなたの力の中にあります

于 2012-05-31T14:07:51.377 に答える