2010-08-19 1 views

ответ

12

Если 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".
  • сайты/example.com/файлы: $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> 
0

Я попробовал решение этой марки и узнал, что мой каталог «/sites/default/files/images/a.jpg»

Но когда я пишу это в свои узлы как img src, он не показывал связанные изображения , Кроме того, когда я писал «../sites/default/files/images/a.jpg» Он работал :)

Потому что в первом случае, Drupal пытался найти файл в «контента/сайтов/по умолчанию /files/images/a.jpg "

4

Просто используйте

$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, удовольствие, любовь это

1

public:// даст вам абсолютный путь к папке общего доступа

Пример: для доступа

drupal/sites/default/files/images/ 

просто положить

public://images/ 
10

Для 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;