(관리되지 않는) 파일이 있는지 확인하는 방법은 무엇입니까?


18

D7에서 (관리되지 않는) 파일이 있는지 알려주는 Drupal API 함수를 찾을 수 없습니다. D6에는 file_check_location이 있지만 7에는 없습니다.

(관리되지 않는) 파일이 있는지 확인하는 방법은 무엇입니까?

답변:


35

file_exists()내가 올바르게 이해하면 이전 bog 표준 PHP 함수를 사용할 수 있습니다 .

$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
  // Do something
}

이것은 다음과 같은 일반 (절대) 경로에서도 작동합니다.

$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
  // Do something
}

구조에 다시 살아, 감사합니다! 내가 당신을 고용 할 수 있습니까? ;-)
uwe

6
@MotoTribe 제공하는 금액에 따라 다릅니다.)
Clive

왜 이것이 작동합니까? 방금 일반 PHP와 스트림 핸들로 이것을 테스트 file_exists()했지만 작동하지 않습니다 . 어떤 설명?
카이저

스트림은 Drupal @kaiser에 의해 올바르게 등록 되었기 때문입니다. php.net/manual/en/wrappers.php
Clive

@Clive 나는 Drupal의 소스를 알려줄 수 있기를 바랍니다. 나머지는 내가 알고 일반 PHP 테스트에서 일할 수 없으므로 물었습니다. 편집 : nvm, 그들을 찾았습니다
kaiser

3

특정 사용 사례가 무엇인지 모르지만 파일이 있는지 확인하지 않아도됩니다.

file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive 및 file_unmanaged_save_data 함수는 파일이 존재하는지 확인하고 존재하지 않으면 false를 리턴합니다.

drupal / includes / file.inc에서 소스 코드를 찾을 수 있습니다.


3

drupal 기능을 사용해야합니다.

file_destination ($ uri, FILE_EXISTS_ERROR)

확인

if (!file_destination($uri, FILE_EXISTS_ERROR)) {
  // The file exist
  // Do something
} 

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