Ich kann in D7 keine Drupal-API-Funktion finden, die angibt, ob eine (nicht verwaltete) Datei vorhanden ist. D6 hatte einen file_check_location aber nicht für 7.
Wie überprüfe ich, ob eine (nicht verwaltete) Datei existiert?
Ich kann in D7 keine Drupal-API-Funktion finden, die angibt, ob eine (nicht verwaltete) Datei vorhanden ist. D6 hatte einen file_check_location aber nicht für 7.
Wie überprüfe ich, ob eine (nicht verwaltete) Datei existiert?
Antworten:
Sie könnten einfach die alte Standard-PHP-Funktion verwenden, file_exists()
wenn ich Sie richtig verstehe:
$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
// Do something
}
Dies funktioniert auch für normale (absolute) Pfade, zB:
$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
// Do something
}
file_exists()
und es funktioniert nicht . Irgendeine Erklärung?
Ich weiß nicht, was Ihr spezifischer Anwendungsfall ist, aber Sie müssen möglicherweise nicht überprüfen, ob die Datei vorhanden ist.
Die Funktionen file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive und file_unmanaged_save_data prüfen, ob die Datei existiert, und geben false zurück, wenn dies nicht der Fall ist.
Sie finden den Quellcode in drupal / includes / file.inc und werfen einen Blick darauf.
Sie sollten die Drupal-Funktion verwenden:
file_destination ($ uri, FILE_EXISTS_ERROR)
und prüfe
if (!file_destination($uri, FILE_EXISTS_ERROR)) {
// The file exist
// Do something
}
file_destination()
Verwendungszweck file_exists()
funktionieren