Nie mogę znaleźć funkcji API Drupal w D7, która mówi mi, czy istnieje plik (niezarządzany). D6 miał lokalizację sprawdzania_pliku, ale nie dla 7.
Jak sprawdzić, czy istnieje plik (niezarządzany)?
Nie mogę znaleźć funkcji API Drupal w D7, która mówi mi, czy istnieje plik (niezarządzany). D6 miał lokalizację sprawdzania_pliku, ale nie dla 7.
Jak sprawdzić, czy istnieje plik (niezarządzany)?
Odpowiedzi:
Możesz po prostu użyć starej standardowej funkcji PHP, file_exists()
jeśli dobrze rozumiem:
$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
// Do something
}
Działa to również dla normalnych (absolutnych) ścieżek, np .:
$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
// Do something
}
file_exists()
i to nie działa. Jakieś wyjaśnienie?
Nie wiem, jaki jest konkretny przypadek użycia, ale może nie być konieczne sprawdzenie, czy plik istnieje.
Funkcje file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive i file_unmanaged_save_dcursive sprawdzają, czy plik istnieje i zwraca false, jeśli nie istnieje.
Możesz znaleźć kod źródłowy w drupal / include / file.inc i zajrzyj.
Powinieneś użyć funkcji drupal:
nazwa_pliku ($ uri, FILE_EXISTS_ERROR)
i zaznacz
if (!file_destination($uri, FILE_EXISTS_ERROR)) {
// The file exist
// Do something
}
file_destination()
użytkowafile_exists()