xandeadx.ru Блог музицирующего веб-девелопера

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');

Способ 3 на чистом php.

Написанное актуально для Drupal 7
Похожие записи

Комментарии RSS

супер! мне понадобилось написать минимум 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'); не работает не один метод, компьютер долго думает и страница остается пустой....

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании