Як отримати каталог завантаження файлів за замовчуванням drupal 7?


21

У мене є проблеми з отриманням директ-завантаження від drupal. Чи є якась функція, що повертає відносний чи абсолютний шлях?


1
Подумайте про використання обгортки ( public://, private://і т.
Д.

Я знаю, що це працює з 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'); потягне для вас шлях за замовчуванням у випадку, якщо він не був змінений або явно встановлений адміністратором сайту.


Хм, у моєму випадку varia_get ('file_public_path') порожній ... чи повинен я викликати його на гачку чи так?
Jurudocs

1
@Jurudocs Використовуйте це замість цього: variable_get('file_public_path', conf_path() . '/files');В основному, він тягне шлях за замовчуванням для вас, якщо він не був змінений або явно встановлений адміністратором сайту.
9ee1

@zhilevan Перевірте дозволи вашого файлу на цій теці.
Атомокс

Це дає лише відносний шлях, який здається менш корисним, ніж абсолютний шлях. Мені подобається 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-адресу від відносної урі:

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

Вони повертають шлях до загальнодоступних або приватних папок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.