Wie bekomme ich das Standard-Upload-Verzeichnis für Drupal 7?

21

Ich habe Probleme, den Upload Directroy von Drupal zu bekommen. Gibt es eine Funktion, die den relativen oder absoluten Pfad zurückgibt?

Jurudocs
quelle
1
public://private://
Erwägen
Ich weiß, dass dies mit image_style_url (uri) funktioniert, aber ich möchte es als Variable für die weitere Verarbeitung an Javascript übergeben ... danke aber
Jurudocs

Antworten:

24

Diese Informationen werden in der Variablentabelle von Drupal gespeichert. Verwenden Sie die variable_getFunktion, um diese Informationen abzurufen, indem Sie den Namen der richtigen Variablen übergeben:

  • Öffentlicher Dateisystemspeicherort :variable_get('file_public_path', conf_path() . '/files');
  • Speicherort des privaten Dateisystems :variable_get('file_private_path');

Wenn Sie das temporäre Upload-Verzeichnis verwenden variable_get('file_temporary_path');möchten Wenn Sie das systemspezifische Upload-Verzeichnis unabhängig von der tatsächlichen Site-Konfiguration ermitteln möchten, verwenden Sie die file_directory_tempFunktion.

variable_get('file_public_path', conf_path() . '/files'); wird den Standardpfad für Sie abrufen, falls er nicht vom Site-Administrator geändert oder explizit festgelegt wurde.

9ee1
quelle
hmm in meinem Fall ist variable_get ('file_public_path') leer ... muss ich es in einem Hook aufrufen oder so?
Jurudocs
1
@Jurudocs Verwenden Sie stattdessen Folgendes: variable_get('file_public_path', conf_path() . '/files');Grundsätzlich wird der Standardpfad für Sie abgerufen , falls er vom Site-Administrator nicht geändert oder explizit festgelegt wurde.
9.
@zhilevan Überprüfen Sie Ihre Dateiberechtigungen für dieses Verzeichnis.
Atomox
Dies gibt nur den relativen Pfad an, der weniger nützlich zu sein scheint als der absolute Pfad. Ich mag die drupal_realpathLösung unten. Scheint mehr legitim.
Alex Finnarn
11

Um die absoluten Dateisystempfade abzurufen, verwenden Sie drupal_realpath (Drupal API) anstelle von file_create_url:

drupal_realpath('public://'); 
// returns e.g. /var/www/drupal/sites/default/files

drupal_realpath('private://');
// returns e.g. /var/www/drupal/sites/default/files_private
Michael Bolli
quelle
3

Sie können diese Funktionen auch verwenden, um eine gültige URL von einer relativen URL abzurufen:

file_create_url('public://');
file_create_url('private://');

Sie geben den Pfad zu den öffentlichen oder privaten Ordnern zurück.

Wranvaud
quelle