¿Cómo obtener el directorio de carga de archivos predeterminado de drupal 7?

21

Tengo problemas para obtener la directriz de carga de drupal. ¿Hay alguna función que devuelva la ruta relativa o absoluta?

Jurudocs
fuente
1
Considere el uso de envolturas ( public://, private://, etc para evitar cualquier conflicto de carpetas Aprovecha Drupal 7 :).)
AyeshK
Sé que esto funciona con image_style_url (uri) pero quiero pasarlo a JavaScript como una variable para un procesamiento
posterior

Respuestas:

24

Esta información se guarda en la tabla de variables de Drupal. Use la variable_getfunción para obtener esta información, pasando el nombre de la variable correcta:

  • Ubicación del sistema de archivos público :variable_get('file_public_path', conf_path() . '/files');
  • Ubicación del sistema de archivos privado :variable_get('file_private_path');

Si desea utilizar el directorio de carga temporal variable_get('file_temporary_path');Si desea determinar el directorio de carga específico del sistema, independientemente de la configuración real del sitio, use la file_directory_tempfunción.

variable_get('file_public_path', conf_path() . '/files'); extraerá la ruta predeterminada en caso de que no haya sido modificada o establecida explícitamente por el administrador del sitio.

9ee1
fuente
hmm en mi caso variable_get ('file_public_path') está vacío ... ¿tengo que llamarlo dentro de un gancho o algo así?
Jurudocs
1
@Jurudocs Use esto en su lugar: variable_get('file_public_path', conf_path() . '/files');Básicamente, extrae la ruta predeterminada para usted en caso de que el administrador del sitio no la haya modificado o establecido explícitamente.
9ee1
@zhilevan Verifique los permisos de su archivo en ese directorio.
Atomox
Esto solo da la ruta relativa que parece menos útil que la ruta absoluta. Me gusta la drupal_realpathsolución a continuación. Parece más legítimo.
Alex Finnarn
11

Para obtener las rutas absolutas del sistema de archivos, use drupal_realpath (API de Drupal) en lugar de 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
fuente
3

También puede usar estas funciones para obtener una URL válida de una uri relativa:

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

Devuelven la ruta a las carpetas públicas o privadas.

wranvaud
fuente