Перейти к содержимому


Импорт изображений


Сообщений в теме: 5

#1 RYM

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 20 Июль 2015 - 11:31

Как импортировать записи типа "изображение" из файлов, хранящихся на диске. Версия КБ -локальная.
Остальные поля импортируются без проблем из файла .csv. Но потом добавлять в каждую запись картинку через редактирование утомительно.
Существует ли какой-нибудь скрипт?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Июль 2015 - 13:21

Нет, боюсь стандартными инструментами импорта это пока не сделать. Теоретически можно написать доп.действие по автоматической загрузке файлов, используя функции работы с файлами, описание функций можно найти в темах на форуме.

#3 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 21 Июль 2015 - 01:06

Можно написать вычисление, срабатывающее при условии Импорт в таблице. По идее, оно отработает для каждой записи, которая была импортирована.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#4 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 28 Октябрь 2015 - 10:56

тоже встала задача залить в таблицу кучу файлов, стандартный импорт не позволяет. удивился конечно такой недоработке, стал думать...
в справке и на форуме решения нет, попробовал несколько вариантов, в итоге остановился на импорте через крон.
все просто:
- указываем таблицу и поле
- формируем массив с соответствием id записи - путь к файлу
- нажимаем выполнить
- загружает как 1 так и несколько файлов в поле

пользуйтесь:
//настройки:
$s_t = 310; // таблица куда пишем
$s_f = 5200; //поле куда пишем, только цифры
// генерируем массив. можно легко при помощи excel
// или дописать чтоб брался из файла. по мне так быстрее.
//формат:
//$data['id записи в таблице'][] = 'путь от корня сайта или url';
$data['1'][] = '/home/*******/public_html/testf/1.jpg';
$data['2'][] = '/home/*******/public_html/testf/2.jpg';
$data['3'][] = '/home/*******/public_html/testf/3.jpg';
$data['4'][] = '/home/*******/public_html/testf/4.jpg';

foreach($data as $k => $v){
  foreach($v as $v1){
	$data_f = file_get_contents($v1);
	if($data_f === false){
	  echo "ошибка получения файла - ".$v1." для строки id=".$k;
	}else{
	  $data_f_n = basename($v1);
	  save_data_file($s_f, $k, $data_f_n, $data_f);
	  $data_l = data_select_array($s_t,  "`id`=", $k);
	  if (strlen($data_l['f'.$s_f]) > 0){
		data_update($s_t, array("f".$s_f => $data_l['f5210']."\r\n".$data_f_n), "`id`=", $k);
	  }else{
		data_update($s_t, array("f".$s_f => $data_f_n), "`id`=", $k);
	  }
	}
  }
}


#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Октябрь 2015 - 12:25

Цитата

стандартный импорт не позволяет. удивился конечно такой недоработке

Согласен, недоработка, сам столкнулся когда делал импорт с сайта для одного из клиентов. Поэтому надеюсь пропишем эту возможность стандартно. Можете направить предложение на доработку через программу, если таковых будет много, это может поднять приоритет данной задачи.

#6 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 13 Январь 2017 - 12:25

А вот для внешнего скрипта оформления карточки сотрудника можно написать код импорта изображения в базу данных из файла вручную через INPUT, чтобы не колдовать полдня?





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных