how to get absolute path for a image in drupal?

I have some images in drupal/sites/default/files/images/.

How can I get the absolute path for an image like abc.jpg placed in this directory?

6
задан kiamlaluno 3 July 2016 в 08:11
поделиться

1 ответ

Если Drupal находится в собственном домене (например, http://example.com ), абсолютный путь будет /sites/default/files/images/abc.jpg .

Если Drupal находится в подпапке (например, http://example.com/drupal ), абсолютный путь будет /drupal/sites/default/files/images/abc.jpg .


Как я объяснил в своем ответе на тот же вопрос, который вы удалили, если вы пытаетесь программно сгенерировать путь (то есть вы не знаете, где находится каталог с файлом), вам нужно использовать file_directory_path () :

$image = file_directory_path() . "/images/abc.jpg";

Итак, если файлы находятся в:

  • sites / default / files : $ image = "sites / default / files / images / abc.jpg" .
  • sites / example.com / files : $ image = "sites / example.com / files / images / abc.jpg" .

Предполагая, что ваш предыдущий вопрос по-прежнему является вариантом использования, вы должны использовать l () и theme_image () для создания ссылок и изображений, соответственно, в вашем модуле. Это гарантирует, что сгенерированные пути верны в среде Drupal.

Используя ожидаемый результат, который вы предоставили ранее, решение будет следующим:

// Images are in drupalroot/sites/default/files/images
$path = file_directory_path() . '/images/';

$detail_file = 'detail_1.jpg';
$image_file  = '1.jpg';

$img = theme('image', $path . $image_file);

$options = array(
  'attributes' => array(
    'title' => t('Sample title for image 1 lorem ipsum'),
  ),
  'html' => TRUE,
);
$output = l($img, $path . $detail_file, $options);

Итак, если ваш сайт находится по адресу http://example.com/ , результат будет следующим:

<a href="/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum">
  <img src="/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" />
</a>

Но если ваш сайт находился в подпапке (например, http://example.com/drupal ), вывод будет:

<a href="/drupal/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum">
  <img src="/drupal/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" />
</a>
13
ответ дан 8 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: