我在Drupal/sites/default/files/images/文件夹中有一些图片。
如何获取放置在该目录中的abc.jpg图片的绝对路径?
我在Drupal/sites/default/files/images/文件夹中有一些图片。
如何获取放置在该目录中的abc.jpg图片的绝对路径?
http://example.com
),绝对路径将为/sites/default/files/images/abc.jpg
。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>
适用于 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;
只需要使用
$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true));
在Drupal 7中,file_directory_path已被删除。如果您使用它,您将会收到一个“调用未定义函数”的错误。请尝试使用drupal_real_path或者其他替代方法。您可以在此处了解有关弃用函数的信息。http://api.drupal.org/api/drupal/includes!file.inc/function/file_directory_path/6
public://
将会给你公共文件夹的绝对路径。
例如:要访问
drupal/sites/default/files/images/
只需放置
public://images/