0

我想从一台服务器下载图像,并将二进制数据保存到 mysql blob 字段中。但它不工作。

  1. 如果我正在显示 $picture1,那么它会显示不可读的字符。字节 $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 回答