Автор Тема: сохранить картинки из базы  (Прочитано 6925 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« : 10 Января 2007, 15:54:11 »
есть таблица mySQL c картинками в поле BLOB. будет конвертация этой таблицы для нового сайта (перенос контента). Можно ли картинки из поля BLOB сохранить в файлы?
Mefisto

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
сохранить картинки из базы
« Ответ #1 : 10 Января 2007, 16:17:13 »
Mefisto

Можно, читаешь данные из базы из поля BLOB, записываешь в файл.

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #2 : 10 Января 2007, 16:32:11 »
обычным fwrite ?
Mefisto

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
сохранить картинки из базы
« Ответ #3 : 10 Января 2007, 16:43:12 »
Цитировать
Mefisto:
обычным fwrite ?


ну да, только fopen(\'filename.gif\', \'wb\')

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #4 : 10 Января 2007, 17:07:11 »
спс
Mefisto

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #5 : 20 Сентября 2007, 00:01:49 »
к сожалению проблема...

картинки сохраняются битыми
у большинства при просмотре Irfan View пишет "Невозможно прочитать заголовок изображения"

вот код


$s
=mysql_query("SELECT * FROM table");
while(
$r=mysql_fetch_assoc($s)){
	

	
$filename="vendor_".$r[\'factory_id\'].".jpg";
	
$F=fopen("../vendors_images/".$filename, \'wb\');
	
fwrite($F,$r[\'logo_blob\']);
	
fclose($F);
	
echo $filename."
";
	
if(!$F) echo "false";
	

	

}
Mefisto

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
сохранить картинки из базы
« Ответ #6 : 20 Сентября 2007, 00:36:18 »
Mefisto
советую посмотреть в сторону кодировок сервера при запросах
SET NAMES \'cp_1251\'

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #7 : 20 Сентября 2007, 14:45:21 »
вот так?


mysql_query
("SET NAMES \'cp_1251\'");
$s=mysql_query("SELECT * FROM table");
while(
$r=mysql_fetch_assoc($s)){
    
    
$filename="vendor_".$r[\'factory_id\'].".jpg";
    $F=fopen("../vendors_images/".$filename, \'wb\');
    fwrite($F,$r[\'logo_blob\']);
    fclose($F);
    echo $filename."
";
    if(!$F) echo "false";
    
    
}
Mefisto

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
сохранить картинки из базы
« Ответ #8 : 20 Сентября 2007, 23:57:57 »
Цитировать
Mefisto:
вот так?

кодровку-то так можно изменить, только дело ли в кодировке, я не знаю...
Может быть имеет смысл сделать дамп таблицы, если всё равно её переносить?

Оффлайн Mefisto

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 151
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #9 : 21 Сентября 2007, 13:44:41 »
Цитировать
кодровку-то так можно изменить, только дело ли в кодировке, я не знаю...
Может быть имеет смысл сделать дамп таблицы, если всё равно её переносить?


предыдущие разработчики сайта хранили картинки в BLOB, мы же храним в файлах, вот и понадобилось конвертировать все в файлы...
Mefisto

Оффлайн new_coder

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сохранить картинки из базы
« Ответ #10 : 28 Сентября 2007, 14:16:46 »
можно попробывать создавать файлы с помощью imagecreatefromstring
или ей подобных

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28