【发布时间】:2015-08-07 19:04:53
【问题描述】:
我有一个数据库,其中图像保存为 blob。现在,我想将此 blob 数据转换为图像文件。
所以我做了这段代码,但它没有给出任何结果
$sql_icon = "SELECT $off_table.icon,$off_table.id
FROM $off_table,$cnt_table,$ctg_table
WHERE $off_table.id = $cnt_table.id
AND $off_table.id = $ctg_table.id
AND ".$cond_api."
AND ".$cond_nt."
AND ".$cond_cnt."
AND ".$cond_ctg;
$result_icon = mysql_query($sql_icon);
while($row = mysql_fetch_array($result_icon))
{
$image = $row["icon"];
$id = $row["id"];
$file = fopen("./image/".$id.".jpg","w");
fwrite($file, base64_decode($image));
fclose($file);
}
问题是,我正在获取文件但没有扩展名,如果我将它们重命名为“.jpg”扩展名,那么它会显示“没有可用的预览”
注意:
图片通过这种方式存入数据库
$sql = "INSERT INTO aw_offers_v2
(
id,name,description,payout_type,
payout,expiration_date,creation_date,preview_url,
tracking_url,categories,countries,countries_short,
api_key,network_id, icon,icon_size)
VALUES
('$id','$name','$description','$payout_type',
'$payout','$expiration_time','$creation_time','$preview_url',
'$tracking_url','$categories','$countries','$countries_short',
'$api','$api_url','".mysql_real_escape_string(file_get_contents($cover_image_src))."','".strlen(file_get_contents($cover_image_src))."')";
如果我写这段代码
echo '<img src="data:image/jpeg;base64,'. base64_encode($image).'" />';
然后我可以正确地看到图像。这意味着图像已成功保存。
但我不能将它们作为文件存储在文件夹中。
【问题讨论】:
-
图片是如何存储的?
-
图像存储为 blob
-
图片是
base64_encoded在你存储之前吗? -
我的意思是,你能告诉我们将图像写入数据库的代码吗?
-
好的,没问题。给我两分钟