gpt4 book ai didi

drupal - 如何在drupal中获取图像的绝对路径?

转载 作者:行者123 更新时间:2023-12-04 13:01:09 24 4
gpt4 key购买 nike

我在 drupal/sites/default/files/images/中有一些图像。

如何获取放置在此目录中的 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" .
  • 网站/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>

    关于drupal - 如何在drupal中获取图像的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519843/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com