Drupal → Как скачать файл на сервер
Пример скачивания логотипа яндекса:
Способ 1:
$result = drupal_http_request('http://img.yandex.net/i/www/logo.png'); if (empty($result->error) && $result->data) { file_unmanaged_save_data($result->data, 'public://images/yandex-logo.png'); }
Способ 2:
system_retrieve_file('http://img.yandex.net/i/www/logo.png', 'public://images');
Комментарии
супер! мне понадобилось написать минимум 10 строк кода чтобы сделать это в семерке.
кстати, заметили проблему с назначением дефолтным изображениям поля Image статуса temporary ? это реальный баг
да, есть такой. я думал в 7.2 починили, а оказывается нет
все работает, только после
file_unmanaged_save_data($result->data, 'public://images/yandex-logo.png') точку-с-запятой пропустили. не знаю специально или нет
и надо в папке files еще папку images создать
Дополню
file_unmanaged_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAME)
идентична file_save_data за исключением того, что не вызываются хуки и ничего о файле в таблицы базы не пишется.
У меня функция system_retrieve_file('http://img.yandex.net/i/www/logo.png', 'public://images'); не работает не один метод, компьютер долго думает и страница остается пустой....
Оставить комментарий