Yanıtlar:
Drupal 7
Bu iki parçalı bir işlemdir file_load()vefile_create_url()
İlk olarak, $ fid değerini Drupal URI'ye dönüştürmeniz gerekir:
$file = file_load($fid);
$uri = $file->uri;
Şimdi bunu bir URL'ye dönüştürebilirsiniz
$url = file_create_url($uri);
file_create_url()daima $base_pathtanımladığınız global'i kullanarak veya Drupal'ın önyükleme sırasında tahmin ettiği URL'yi kullanarak mutlak bir URL oluşturur .
$file = \Drupal\file\Entity\File::load($file_id);
$uri = $file->getFileUri();
$url = \Drupal\Core\Url::fromUri(file_create_url($uri))->toString();
Dosyanın tüm alanlarını yüklemek istemiyorsanız, Drupal 7'de MYSQL sorgusunu da kullanabilirsiniz
$ fid = 1; // dosya kimliğiniz
$ uri = db_select ('dosya_yönetimi', 'f')
-> koşul ('f.fid', $ fid, '=')
-> alanlar ('f', dizi ('uri'))
->) (yürütmek -> fetchField ();
echo file_create_url ($ uri);
Bunların ikisi de Drupal 8'de benim için çalışıyor:
// top of file
use Drupal\file\Entity\File;
use Drupal\Core\Url;
// load the file object from some file id
$file_object = File::load(123);
// way 1
$file_uri = $file_object->uri->value;
$file_url = file_create_url($file_uri);
// way 2
$file_uri = $file_object->getFileUri();
$file_url = Url::fromUri(file_create_url($file_uri))->toString();