Как получить каталог для загрузки файлов по умолчанию в drupal 7?

21

У меня проблемы с получением загрузочной директории от drupal. Есть ли какая-нибудь функция, возвращающая относительный или абсолютный путь?

Jurudocs
источник
1
Подумайте об использовании оберток ( public://, private://и т. Д., Чтобы избежать любых конфликтов папок. Воспользуйтесь преимуществами Drupal 7 :))
AyeshK
Я знаю, что это работает с image_style_url (uri), но я хочу передать его в javascript в качестве переменной для дальнейшей обработки ... спасибо, хотя
Jurudocs

Ответы:

24

Эта информация сохраняется в таблице переменных Drupal. Используйте variable_getфункцию для получения этой информации, передавая имя правильной переменной:

  • Расположение публичной файловой системы :variable_get('file_public_path', conf_path() . '/files');
  • Расположение приватной файловой системы :variable_get('file_private_path');

Если вы хотите, чтобы временный каталог загрузки использовался, variable_get('file_temporary_path');если вы хотите определить системный каталог загрузки, независимо от фактической конфигурации сайта, используйте file_directory_tempфункцию.

variable_get('file_public_path', conf_path() . '/files'); выберет для вас путь по умолчанию, если он не был изменен или явно задан администратором сайта.

9ee1
источник
хм в моем случае variable_get ('file_public_path') пусто ... я должен вызывать его в ловушке или около того?
Jurudocs
1
@Jurudocs Используйте это вместо этого: в variable_get('file_public_path', conf_path() . '/files');основном, он выбирает путь по умолчанию для вас, если он не был изменен или явно установлен администратором сайта.
9ее1
@zhilevan Проверьте права доступа к файлам в этом каталоге.
Atomox
Это дает только относительный путь, который кажется менее полезным, чем абсолютный путь. Мне нравится drupal_realpathрешение ниже. Кажется более законным.
Алекс Финнарн
11

Чтобы получить абсолютные пути к файловой системе, используйте drupal_realpath (Drupal API) вместо 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

Вы также можете использовать эти функции для получения действительного URL-адреса из относительного URI:

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

Они возвращают путь к общим или личным папкам.

wranvaud
источник