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?
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.
quelle
Sie sollten die Drupal-Funktion verwenden:
file_destination ($ uri, FILE_EXISTS_ERROR)
und prüfe
quelle
file_destination()
Verwendungszweckfile_exists()
funktionieren