Невозможно конвертировать BLOB в изображение

У меня есть база данных, где изображения сохраняются в виде 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).'" />';

тогда я могу видеть изображения правильно. Это означает, что изображения успешно сохранены.

Но я не могу хранить их в папке как файлы.

1

Решение

Глядя на свой код, вы не base64_encode ваше изображение.

Так что вы можете просто сделать:

 fwrite($file, $image);

Вам нужно только base64_encode когда вы отображаете изображение, помещая данные внутри src атрибут <img тег.

Также обратите внимание, что вы можете упростить это:

$file = fopen(...);
fwrite($file, $image);
fclose($file);

одной строкой:

file_put_contents("./image/{$id}.jpg", $image);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector