Я пытаюсь удалить данный файл из каталога с помощью PHP. Вот код, который я пробовал:
// Get the file name
$id = '61514';
// Get the folder path
$uploads_folder_dir = 'some/dir';
// Check if the directory exists
if ( ! file_exists( $uploads_folder_dir ) )
return false;
// Open the directory
if ( $dir = opendir( $uploads_folder_dir ) ) {
// Loop through each file in the directory
while ( false !== ( $file = readdir( $dir ) ) ) {
// Target the file to be deleted and delete. All files in folder are .png
if ( $file == ( $id . '.png' ) )
@unlink( $uploads_folder_dir . '/' . $file );
}
}
// Housekeeping
closedir( $dir );
@rmdir( $uploads_folder_dir );
Каждый раз, когда я запускаю код, конкретный файл, который я пытаюсь удалить, не удаляется.
Я предполагаю, что когда я перебираю каталог, моя логика, чтобы найти файл, не работает. Я могу подтвердить, что файл 61514.png
определенно находится в каталоге some/dir
Надеюсь, кто-то может определить, где я здесь ошибся?
Сначала отладка вашего пути к файлу в порядке или не просто путем печати всего пути к файлу, например
// Target the file to be deleted and delete. All files in folder are .png
if ( $file == ( $id . '.png' ) ){
echo $uploads_folder_dir . '/' . $file; die;
@unlink( $uploads_folder_dir . '/' . $file );
}
}
Почему вы просматриваете файлы? Это было бы намного проще:
// Get the file name
$id = '61514';
// Get the folder path
$uploads_folder_dir = 'some/dir';
// Check if the directory exists
if ( ! file_exists( $uploads_folder_dir ) )
return false;
unlink("$uploads_folder_dir/$id.png");
// Housekeeping
@rmdir( $uploads_folder_dir );
@unlink → используйте unlink, и если вы не видите проблему с разрешением отказа, файл и "dir" должны быть удалены.
@
из infront unlink, чтобы увидеть любые ошибки, которые выдает. Возможно, у PHP нет прав на удаление файла.