Moh*_*ain 6 drupal absolute-path
我在drupal/sites/default/files/images /中有一些图像.
如何获得放置在此目录中的像abc.jpg这样的图像的绝对路径?
小智 13
如果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";
Run Code Online (Sandbox Code Playgroud)
所以,如果文件在:
$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);
Run Code Online (Sandbox Code Playgroud)
因此,假设您的网站位于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>
Run Code Online (Sandbox Code Playgroud)
但是如果您的站点位于子文件夹(例如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>
Run Code Online (Sandbox Code Playgroud)
小智 12
对于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;
Run Code Online (Sandbox Code Playgroud)
小智 5
只需使用
$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您将拥有一个类似于“ http://www.mywebsite.com/sites/default/files/images/image.jpeg”的路径。
$ uri是内部路径,例如“ public://images/image.jpeg”
这是Drupal 7,喜欢它,喜欢它