Wie kann ich den absoluten Pfad für eine Datei basierend auf der FID erhalten? Es tut mir leid, wenn dies eine Wiederholung ist, ich habe eine Suche durchgeführt, konnte jedoch keine Antwort finden.
Wie kann ich den absoluten Pfad für eine Datei basierend auf der FID erhalten? Es tut mir leid, wenn dies eine Wiederholung ist, ich habe eine Suche durchgeführt, konnte jedoch keine Antwort finden.
Antworten:
Drupal 7
Dies ist ein zweiteiliger Prozess mit file_load()
undfile_create_url()
Zuerst müssen Sie das $ fid in einen Drupal-URI verwandeln:
$file = file_load($fid);
$uri = $file->uri;
Jetzt können Sie daraus eine URL machen
$url = file_create_url($uri);
file_create_url()
Erstellt immer eine absolute URL, entweder mit der von $base_path
Ihnen definierten globalen oder mit der, die Drupal während des Bootstraps erraten hat.
In Drupal 7 können Sie auch MYSQL-Abfragen verwenden, wenn Sie nicht alle Felder der Datei laden möchten
$ fid = 1; // Ihre Datei-ID $ uri = db_select ('file_managed', 'f') -> Bedingung ('f.fid', $ fid, '=') -> Felder ('f', Array ('uri')) -> execute () -> fetchField (); echo file_create_url ($ uri);
$file = \Drupal\file\Entity\File::load($file_id);
$uri = $file->getFileUri();
$url = \Drupal\Core\Url::fromUri(file_create_url($uri))->toString();
Diese beiden arbeiten für mich in Drupal 8:
// 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();