Импорт изображений из url при импорте из csv
#1
Отправлено 12 Апрель 2016 - 16:54
Но хочу чтобы картинка скачивалась по url из файла csv при импорте.
Планирую так, в фале csv через разделитель будут указаны url картинок.
В вычислении с условием импорт в таблице разобрать url и так же каки в этой теме присвоить полю типа Изображение скаченный файл.
Вопрос, будет ли это работать ? Доступны ли в вычислении импортируемые поля ?
т.к у меня может быть список картинок как правильно выполнить присвоение ?
#2
Отправлено 13 Апрель 2016 - 09:35
Цитата
Почему собственно нет? Файл csv тут не причем, вычисление в любом случае будет работать с полями таблицы уже после импорта строки. Т.е. у вас должно быть 2 поля: в первое, с типом текст, импортируются url из файла стандартным образом, во втором, с типом изображение, вычисление добавляет картинки.
#3
Отправлено 13 Апрель 2016 - 09:54
Мне еще не очень понятно как быть со списком картинок, насколько я понял, это то же самое поле с типом изображение.
Можете привести код дать пример кода как присвоить полю несколько картинок или я что то не так понял про несколько изображений в одном поле ?
#4
Отправлено 13 Апрель 2016 - 10:32
Цитата
Да, в поле с типом изображение может быть несколько картинок.
Цитата
Тот же самый код что в примере, только с циклом по нескольким ссылкам.
#5
Отправлено 14 Апрель 2016 - 10:18
Сообщение отредактировал alexols: 14 Апрель 2016 - 10:18
#6
Отправлено 14 Апрель 2016 - 10:23
#7
Отправлено 14 Апрель 2016 - 10:32
$nameFile=Путь к моему файлу на сервере.
//Определяем путь к загружаему файлу в КБ
$file_path = get_file_path(491, $line['ID'], $nameFile);
//Создаем необходимую структуру директорий
create_data_file_dirs(491, $line['ID'], $nameFile);
if (!$line['Фото товара']) $line['Фото товара']=$nameFile;
else $line['Фото товара']=$line['Фото товара']."\r\n".$nameFile;
// Формируем предпросмотр изображения в папке cache
$cur_line = $line;
$cur_table = $table;
$cur_field = get_table_fields($table);
$cur_field = $cur_field[491];
$t = form_display_type($cur_field, $cur_line);
Естественно с учетом моих таблиц и названий полей.
-------------------------------------
И уточните пожалуйста что означает // Формируем предпросмотр изображения в папке cache
не очень понимаю что делает код пол этим комментариям, нужен ли он мне ?
#8
Отправлено 14 Апрель 2016 - 10:56
Цитата
Нет. Во-первых, в "$nameFile=Путь к моему файлу на сервере" должен быть не путь к файлу, а его имя, которое вы достаете из поля, в которое собственно происходит импорт из csv. Т.е. должно быть "$nameFile=$line['Поле с именем файла']". Во-вторых, не вижу в коде команды копирования файла из вашей папки на сервере в программу КБ. Вы заполняете переменную $file_path, которая как раз и нужна для этого (чтобы знать, куда собственно копировать файл), но никак ее не используете потом. Должно быть copy(Путь к файлу на сервере, $file_path) после создания директории.
Цитата
не очень понимаю что делает код пол этим комментариям, нужен ли он мне ?
Я сам не очень понимаю, зачем это нужно, видимо автор решил так форсировать производительность, или что-то недопонимает. Этот блок вообще необязателен, его можно выкинуть.
#9
Отправлено 18 Апрель 2016 - 20:10
CbCoder (14 Апрель 2016 - 10:56) писал:
#10
Отправлено 18 Апрель 2016 - 23:27
$images=$line['ИмяФайлаКартинки'];
$images_array=explode(";", $images);
$image_first=$images_array[0];
$file_path = get_file_path(13180, $line['ID'], $image_first);
//Создаем необходимую структуру директорий
create_data_file_dirs(13180, $line['ID'], $image_first);
//Копируем файл
copy('picture/picture/'.$image_first,$file_path);
// Присваиваем полю с типом изображение
$line['Фото главная']=$image_first;
В поле таблицы после импорта вижу
765225819_0.jpg (файл не существует)
Что сделал не так ? что можно проверить ?
Очень похоже на то что не копируется файл, сходил в директорию /http/files/f3/97 там пусто.
Сообщение отредактировал alexols: 18 Апрель 2016 - 23:34
#11
Отправлено 19 Апрель 2016 - 06:48
#12
Отправлено 19 Апрель 2016 - 10:34
Теперь мне необходимо запускать этот скрипт по расписанию, вроде как понимаю что нужно юзать cron и в доке про это что то есть.
Как настроить запуск моего скрипта в cron ?
Если есть про это в доке дайте ссылку, что то я не найду.
#13
Отправлено 20 Апрель 2016 - 16:38
alexols (19 Апрель 2016 - 10:34) писал:
Теперь мне необходимо запускать этот скрипт по расписанию, вроде как понимаю что нужно юзать cron и в доке про это что то есть.
Как настроить запуск моего скрипта в cron ?
Если есть про это в доке дайте ссылку, что то я не найду.
#14
Отправлено 20 Апрель 2016 - 17:36
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных