我想从一台服务器下载图像,并希望将binery数据保存到mysql blob字段中。但它不起作用。
如果我显示$ picture1,那么它会显示不可读的字符。 byt $ picture2没有显示。
如果我尝试将其保存在表格中,那么它就不会保存在表格中。
如何将其保存到我的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;
}
答案 0 :(得分:1)
在保存到数据库字段之前,尝试使用base64对其进行编码:
echo base64_encode($picture1);
要从数据库中读出来,您需要解码它:
echo base64_decode($picture);
但请务必使用它发送正确的标题,例如:
header('Content-Type: image/png');
但请在之前阅读:Storing Images in DB - Yea or Nay?并考虑是否确实要将其保存在数据库中。
我严格反对它,但这是你的力量