我正在尝试找到转换URI的方法
public://field/image/link-carousel.png
到相对路径
sites/default/files/directory/link-carousel.png
(of当然,这只是一个示例,因为public://可能有其他路径)。
怎么做呢?
代码:
if(isset($article_node['field_image']['und']['n0'])){
$uri = $article_node['field_image']['und']['n0']['uri'];
$realpath = \Drupal::service('file_system')->realpath($uri);
$path = str_replace($_SERVER['DOCUMENT_ROOT'] . '/', '', $realpath);
}
在这里打印$uri
将得到公开://field/image/link-caribbean-carousel-epic-press-release.png。在打印$realpath
时,它给出了一个空白页。
4条答案
按热度按时间idv4meu81#
取自https://gist.github.com/illepic/fa451e49c5c43b4a1742333f109dbfcd:
0wi1tuuw2#
链接:https://api.drupal.org/api/drupal/core%21modules%21file%21src%21Entity%21File.php/function/File%3A%3AcreateFileUrl/8.7.x
xytpbqjk3#
使用FileSystem::realpath()从sream Package 的URI进行转换:
UPD:由于某些原因,上面的例子是无效的,我们需要使用file_system服务代替:
8nuwlpux4#
从Drupal 9.3开始,您可以:
参见:https://www.drupal.org/node/2940031