¿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?


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.


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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.