У меня есть несколько изображений в drupal/sites/default/files/images /.Как получить абсолютный путь для изображения в drupal?
Как я могу получить абсолютный путь для изображения, такого как abc.jpg, размещенного в этом каталоге?
У меня есть несколько изображений в drupal/sites/default/files/images /.Как получить абсолютный путь для изображения в drupal?
Как я могу получить абсолютный путь для изображения, такого как abc.jpg, размещенного в этом каталоге?
Если 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";
Так что, если файлы находятся в:
$image = "sites/default/files/images/abc.jpg"
.$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>
Я попробовал решение этой марки и узнал, что мой каталог «/sites/default/files/images/a.jpg»
Но когда я пишу это в свои узлы как img src, он не показывал связанные изображения , Кроме того, когда я писал «../sites/default/files/images/a.jpg» Он работал :)
Потому что в первом случае, Drupal пытался найти файл в «контента/сайтов/по умолчанию /files/images/a.jpg "
Просто используйте
$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true));
В этом случае вы будете иметь путь" http://www.mywebsite.com/sites/default/files/images/ image.jpeg "
$ uri is inte rnal path, как «public: // images/image.JPEG»
Это Drupal 7, удовольствие, любовь это
public://
даст вам абсолютный путь к папке общего доступа
Пример: для доступа
drupal/sites/default/files/images/
просто положить
public://images/
Для Drupal 7
$relativePath = "blabla/abc.jpg";
$uri = file_build_uri($relativePath);
//show public://blabla/abc.jpg
echo $uri;
$url = file_create_url($uri);
//show http://www.yoursite.com/sites/default/files/blabla/abc.jpg
echo $url;
file_directory_path удален в drupal 7. Если вы его используете, вы получите сообщение об ошибке «вызов неопределенной функции». Попробуйте использовать drupal_real_path или. Здесь вы можете найти устаревшую функцию. http://api.drupal.org/api/drupal/includes!file.inc/function/file_directory_path/6