Как программно создать узел с файлом изображения, сохраненным из удаленного источника?
У меня есть URL-адрес удаленного изображения, сохраненный в переменной $image_url
, и следующий код для программного создания узла:
$node = new stdClass();
$node->uid = '1';
$node->type = 'article';
node_object_prepare($node);
$node->title = $title;
$node->status = 1;
$node->promote = 0;
$node->sticky = 0;
$node->language = 'ru';
$node->body['und'][0]['value'] = $body;
$node->body['und'][0]['format'] = 'filtered_html';
node_save($node);
Вызов filefield_sources_save_file($image_url)
в пользовательском модуле дает:
Предупреждение: размер файла(): ошибка статистики для http://www.remotesite.com/images/2014/11/1414790760.jpg в файле filefield_sources_save_file() (строка 451 /home/mysite/public_html/сайты/все/модули/файловые поля_источники/файловые поля_источники.модуль). Указанный файл 1414790760.jpg не удалось загрузить. Допускаются только файлы со следующими расширениями: jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp.
Не могли бы вы помочь мне внести изменения в приведенный выше фрагмент кода, чтобы программно создать узел с изображением в поле изображения, сохраненным из удаленного источника.
1 answers
Наконец-то разобрались. Следующий код отлично работает:
$file = file_save_data(file_get_contents($image_url), file_default_scheme().'://tmp/'.basename($image_url));
$file->status = 1;
$node->field_image['und'][0] = (array)$file;
node_save($node);