it-swarm.com.de

Warum gibt drupal_realpath ('public: //') einen falschen Pfad zurück?

Wie bei Fragen. Ich rufe drupal_realpath('public://') innerhalb der Modulfunktion auf. Ich habe keine Ahnung, warum ich einen Pfad bekomme wie: sites/all/modules/current_module/sites/default/files, z.B.

C:\drupal_path\sites\all\modules [aktuelles_Modul]\sites\default\files

4
Codium

drupal_realpath() ist veraltet und sollte nicht verwendet werden; Da Sie einen Stream-Wrapper-URI haben, sollten Sie in der Lage sein, den richtigen Pfad wie folgt zu erhalten:

$uri = 'public://';
if ($wrapper = file_stream_wrapper_get_instance_by_uri($uri)) {
  $path = $wrapper->realpath();
}

Stellen Sie außerdem sicher, dass Ihr öffentlicher Pfad in der Benutzeroberfläche korrekt ist (unter admin/config/media/file-system).

8
Clive

Zusätzlich zu Clives Antwort mit:

$path = $wrapper->getExternalUrl();

Anstatt zu verwenden:

$path = $wrapper->realpath();

Arbeitete für mich, ich hatte das gleiche Problem mit dem falschen Weg.

2
JorisP

Drupal verwendet den Dateistream von PHP und der Pfad wird an dieser Stelle konfiguriert

admin/config/media/file-system

Sie können es ändern, wo immer Sie wollen