web-dev-qa-db-ja.com

(管理されていない)ファイルが存在するかどうかを確認する方法

(管理されていない)ファイルが存在するかどうかを通知するDrupal API関数がD7に見つかりません。D6には file_check_location がありましたが、7にはありません。

(管理されていない)ファイルが存在するかどうかを確認する方法

17
uwe

古いバグ標準PHP function file_exists() を使用できます。

$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
}
35
Clive

drupal関数を使用する必要があります。

file_destination($ uri、FILE_EXISTS_ERROR)

そしてチェック

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

特定の使用例はわかりませんが、ファイルが存在するかどうかを確認する必要がない場合があります。

関数file_unmanaged_copy、file_unmanaged_move、file_unmanaged_delete、file_unmanaged_delete_recursive、およびfile_unmanaged_save_dataは、ファイルが存在するかどうかを確認し、存在しない場合はfalseを返します。

ソースコードはdrupal/includes/file.incにあり、確認できます。

3
Dan Meigs