Saya tidak dapat menemukan fungsi Drupal API di D7 yang memberitahu saya jika ada file (tidak dikelola). D6 memiliki file_check_location tetapi tidak untuk 7.
Bagaimana cara memeriksa apakah file (tidak dikelola) ada?
Saya tidak dapat menemukan fungsi Drupal API di D7 yang memberitahu saya jika ada file (tidak dikelola). D6 memiliki file_check_location tetapi tidak untuk 7.
Bagaimana cara memeriksa apakah file (tidak dikelola) ada?
Jawaban:
Anda bisa menggunakan fungsi PHP standar rawa lama file_exists()
jika saya mengerti Anda benar:
$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
// Do something
}
Ini juga berfungsi untuk jalur normal (absolut) juga, misalnya:
$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
// Do something
}
file_exists()
dan tidak berfungsi. Ada penjelasan?
Saya tidak tahu apa itu use case khusus Anda, tetapi Anda mungkin tidak perlu memeriksa untuk melihat apakah file tersebut ada.
Fungsi file_unmanaged_copy, file_unmanaged_move, file_unmanaged_delete, file_unmanaged_delete_recursive, dan file_unmanaged_save_data memeriksa untuk melihat apakah file itu ada dan mengembalikan false jika tidak.
Anda dapat menemukan kode sumber di drupal / include / file.inc dan lihatlah.
Anda harus menggunakan fungsi drupal:
file_destination ($ uri, FILE_EXISTS_ERROR)
dan cek
if (!file_destination($uri, FILE_EXISTS_ERROR)) {
// The file exist
// Do something
}
file_destination()
gunakanfile_exists()