web-dev-qa-db-fra.com

Comment vérifier si un fichier (non géré) existe?

Je ne trouve pas de fonction Drupal API dans D7 qui me dit si un fichier (non géré) existe. D6 avait un file_check_location mais pas pour 7.

Comment vérifier si un fichier (non géré) existe?

17
uwe

Vous pouvez simplement utiliser l'ancien standard de tourbière PHP function file_exists() si je vous comprends bien:

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

Cela fonctionne également pour les chemins normaux (absolus), par exemple:

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

Vous devez utiliser la fonction drupal:

file_destination ($ uri, FILE_EXISTS_ERROR)

et vérifie

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

Je ne sais pas quel est votre cas d'utilisation spécifique, mais vous n'aurez peut-être pas besoin de vérifier si le fichier existe.

Les fonctions file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive et file_unmanaged_save_data vérifient si le fichier existe et retournent false si ce n'est pas le cas.

Vous pouvez trouver le code source dans drupal/includes/file.inc et y jeter un œil.

3
Dan Meigs