Come ottenere drupal 7 directory di caricamento file predefinita?


21

Ho difficoltà a ottenere il caricamento diretto da Drupal. C'è qualche funzione che restituisce il percorso relativo o assoluto?


1
Prendi in considerazione l'utilizzo di wrapper ( public://, private://ecc. Per evitare conflitti di cartelle. Approfitta di Drupal 7 :))
AyeshK,

So che funziona con image_style_url (uri) ma voglio passarlo a javascript come variabile per ulteriori elaborazioni ... grazie comunque
Jurudocs,

Risposte:


24

Questa informazione viene salvata nella tabella delle variabili di Drupal. Utilizzare la variable_getfunzione per ottenere queste informazioni, passando il nome della variabile corretta:

  • Posizione del filesystem pubblico :variable_get('file_public_path', conf_path() . '/files');
  • Posizione del filesystem privato :variable_get('file_private_path');

Se si desidera utilizzare la directory di caricamento temporaneo variable_get('file_temporary_path');Se si desidera determinare la directory di caricamento specifica del sistema, indipendentemente dalla configurazione del sito effettiva utilizzare la file_directory_tempfunzione.

variable_get('file_public_path', conf_path() . '/files'); tirerà il percorso predefinito per te nel caso in cui non sia stato modificato o impostato esplicitamente dall'amministratore del sito.


hmm nel mio caso variabile_get ('file_public_path') è vuoto ... devo chiamarlo in un gancio o giù di lì?
Jurudocs,

1
@Jurudocs Usa questo invece: variable_get('file_public_path', conf_path() . '/files');Fondamentalmente, estrae il percorso predefinito per te nel caso in cui non sia stato modificato o impostato esplicitamente dall'amministratore del sito.
9ee1,

@zhilevan Controlla i permessi dei tuoi file su quella directory.
Atomox,

Questo dà solo il percorso relativo che sembra meno utile del percorso assoluto. Mi piace la drupal_realpathsoluzione qui sotto. Sembra più legittimo.
Alex Finnarn,

11

Per ottenere i percorsi assoluti del file system utilizzare drupal_realpath (Drupal API) anziché 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

3

Puoi anche usare queste funzioni per ottenere un URL valido da un uri relativo:

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

Restituiscono il percorso alle cartelle pubbliche o private.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.