Como obter o diretório de upload de arquivo padrão do drupal 7?

21

Estou com problemas para obter o directroy de upload do drupal. Existe alguma função retornando o caminho relativo ou absoluto?

Jurudocs
fonte
1
Considere o uso de invólucros ( public://, private://, etc, para evitar conflitos de pasta Aproveitar Drupal 7 :).)
AyeshK
Eu sei que isso funciona com image_style_url (URI), mas eu quero passá-lo para javascript como uma variável para processamento futher ... graças embora
Jurudocs

Respostas:

24

Esta informação é salva na tabela de variáveis ​​do Drupal. Use a variable_getfunção para obter essas informações, passando o nome da variável correta:

  • Localização do Sistema de Arquivos Públicos :variable_get('file_public_path', conf_path() . '/files');
  • Localização do Sistema de Arquivos Privado :variable_get('file_private_path');

Se você deseja que o diretório de upload temporário use variable_get('file_temporary_path');Se você deseja determinar o diretório de upload específico do sistema, independentemente da configuração real do site, use a file_directory_tempfunção

variable_get('file_public_path', conf_path() . '/files'); puxará o caminho padrão para você, caso não tenha sido modificado ou definido explicitamente pelo administrador do site.

9ee1
fonte
hmm no meu caso variable_get ('file_public_path') está vazio ... eu tenho que chamá-lo dentro de um gancho ou algo assim?
Jurudocs
1
@Jududocs Use isso: variable_get('file_public_path', conf_path() . '/files');Basicamente, ele puxa o caminho padrão para você, caso não tenha sido modificado ou definido explicitamente pelo administrador do site.
01
@zhilevan Verifique suas permissões de arquivo nesse diretório.
Atomox
Isso fornece apenas o caminho relativo que parece menos útil que o caminho absoluto. Eu gosto da drupal_realpathsolução abaixo. Parece mais legítimo.
precisa saber é o seguinte
11

Para obter os caminhos absolutos do sistema de arquivos, use drupal_realpath (API Drupal) em vez 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
fonte
3

Você também pode usar estas funções para obter um URL válido de um URL relativo:

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

Eles retornam o caminho para as pastas públicas ou privadas.

wranvaud
fonte