Làm thế nào để có được thư mục tải lên tập tin mặc định 7 drupal?


21

Tôi gặp khó khăn để có được tải lên directroy từ drupal. Có một số chức năng trả về đường dẫn tương đối hoặc tuyệt đối?


1
Cân nhắc sử dụng các hàm bao ( public://,, private://v.v để tránh mọi xung đột thư mục. Tận dụng Drupal 7 :))
AyeshK

Tôi biết rằng điều này hoạt động với image_style_url (uri) nhưng tôi muốn chuyển nó sang javascript như một biến để xử lý xa hơn ... mặc dù vậy
Jurudocs

Câu trả lời:


24

Thông tin này được lưu trong bảng biến của Drupal. Sử dụng variable_gethàm để lấy thông tin này, chuyển vào tên của biến chính xác:

  • Vị trí hệ thống tập tin công cộng :variable_get('file_public_path', conf_path() . '/files');
  • Vị trí hệ thống tập tin cá nhân :variable_get('file_private_path');

Nếu bạn muốn thư mục tải lên tạm thời sử dụng variable_get('file_temporary_path');Nếu bạn muốn xác định thư mục tải lên cụ thể của hệ thống, bất kể cấu hình trang web thực tế sử dụng file_directory_tempchức năng.

variable_get('file_public_path', conf_path() . '/files'); sẽ kéo đường dẫn mặc định cho bạn trong trường hợp nó không được sửa đổi hoặc đặt rõ ràng bởi quản trị viên trang.


hmm trong trường hợp của tôi biến_get ('file_public_path') trống ... tôi có phải gọi nó trong một hook hay không?
Jurudocs

1
@Jurudocs Sử dụng cái này thay thế: variable_get('file_public_path', conf_path() . '/files');Về cơ bản, nó kéo đường dẫn mặc định cho bạn trong trường hợp nó không được sửa đổi hoặc đặt rõ ràng bởi người quản trị trang.
9ee1

@zhilevan Kiểm tra quyền truy cập tệp của bạn trên thư mục đó.
Atomox

Điều này chỉ cung cấp đường dẫn tương đối có vẻ ít hữu ích hơn đường dẫn tuyệt đối. Tôi thích drupal_realpathgiải pháp dưới đây. Có vẻ hợp pháp hơn.
Alex Finnarn

11

Để có được đường dẫn hệ thống tệp tuyệt đối, hãy sử dụng drupal_realpath (API Drupal) thay vì 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

Bạn cũng có thể sử dụng các chức năng này để nhận url hợp lệ từ một uri tương đối:

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

Họ trả lại đường dẫn đến các thư mục công cộng hoặc riêng tư.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.