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


21

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


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'); выберет для вас путь по умолчанию, если он не был изменен или явно задан администратором сайта.


хм в моем случае 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://');

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.