drupal 7 기본 파일 업로드 디렉토리를 얻는 방법?


21

drupal에서 업로드 directroy를 얻는 데 문제가 있습니다. 상대 또는 절대 경로를 반환하는 함수가 있습니까?


1
래퍼 ( public://, private://등을 사용하여 폴더 충돌을 피하십시오. Drupal 7 :) 활용)
AyeshK

나는 이것이 image_style_url (uri)와 함께 작동한다는 것을 알고 있지만 추가 처리를위한 변수로 자바 스크립트에 전달하고 싶습니다 ... 감사합니다
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');기본적으로 사이트 관리자가 수정하거나 명시 적으로 설정하지 않은 경우 기본 경로를 가져옵니다.
9ee1

@zhilevan 해당 디렉토리에 대한 파일 권한을 확인하십시오.
Atomox

이것은 절대 경로보다 유용하지 않은 상대 경로 만 제공합니다. drupal_realpath아래 솔루션이 마음에 듭니다. 더 합법적 인 것 같습니다.
Alex Finnarn

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

다음 함수를 사용하여 상대 URI에서 유효한 URL을 얻을 수도 있습니다.

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

공용 또는 개인 폴더의 경로를 반환합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.