Ich erstelle ein Excel-Lesemodul in Drupal 8. Ich möchte den tatsächlichen Pfad einer Datei zum Lesen aus einem Pfad wie public: //2016-03/Places.xls abrufen.
Welche Funktion sollte ich aufrufen, um den tatsächlichen Pfad einer Datei abzurufen?
Zum Lesen mit was? Dieser Pfad funktioniert mit fast allem, z. B. funktioniert file_get_contents ('public: // ...') einwandfrei.
Berdir
1
Ich habe die Antwort in Bezug auf Drupal 8 erhalten: \ Drupal :: service ('file_system') -> realpath ('public: //2016-03/Places_2.xlsx')
Nisam
1
Poste es als Antwort und akzeptiere es als Lösung. Das wird anderen bei der gleichen Frage helfen.
Aram Boyajyan
1
Ich hatte eine ähnliche Situation, ging aber schließlich zu file_create_url, weil es managed files (These are files that have either been uploaded by users or were generated automatically (for example through CSS aggregation))undshipped files (those outside of the files directory, which ship as part of Drupal core or contributed modules or themes)
usernameabc
Antworten:
16
Schließlich bekam ich die Lösung durch Graben von Drupal-Code.
Wir können den realen Pfad oder den absoluten Pfad mithilfe des Dienstes file_system ermitteln .
Sind diese für Dateien, die über Drupal hochgeladen werden? Was passiert, wenn sie extern gehostet werden? The use of this method is discouraged, because it does not work for remote URIs. Except in rare cases, URIs should not be manually resolved.Erwähnt wird die Dokumentation für FileSystem :: realpath
managed files (These are files that have either been uploaded by users or were generated automatically (for example through CSS aggregation))
undshipped files (those outside of the files directory, which ship as part of Drupal core or contributed modules or themes)
Antworten:
Schließlich bekam ich die Lösung durch Graben von Drupal-Code.
Wir können den realen Pfad oder den absoluten Pfad mithilfe des Dienstes file_system ermitteln .
quelle
The use of this method is discouraged, because it does not work for remote URIs. Except in rare cases, URIs should not be manually resolved.
Erwähnt wird die Dokumentation für FileSystem :: realpath@Nisam Antwort war richtig, aber jetzt ist es veraltet: Funktion drupal_realpath
Sie sollten also FileSystem :: realpath verwenden .
Beispiel:
quelle