我正在尝试删除包含所有图像的相册。存储的相册和图像的路径是../_uploads/< album_name >/< image_file >。这是我的 delete_album.php 中的代码:
if(isset($_GET['album_id']) === true){
$album_id = (int)$_GET['album_id'];
$query_album_info = "SELECT `albums`.`album_id`, `albums`.`album_name`, `images`.`image_name`, `images`.`image_ext`
FROM `albums`
LEFT JOIN `images` ON `albums`.`album_id` = `images`.`album_id`
WHERE `albums`.`album_id` = {$album_id}
LIMIT 1 ";
$album_info = mysql_query($query_album_info, $connection) or die(mysql_error());
$row_album = mysql_fetch_assoc($album_info);
$album = $row_album['album_name'];
$img_file = $row_album['image_name'] . '.' . $row_album['image_ext'];
$images = scandir("../_uploads/{$album}/");
unset($images[0]);
unset($images[1]);
//echo "<pre>",print_r($images,true),"</pre>";
foreach($images as $image){
unlink("../_uploads/{$album}/{$image_file}");
}
if(rmdir("../_uploads/{$album}") === true){
//delete all images of album from database
$query_delete_images = "DELETE FROM `images` WHERE `album_id` = {$album_id}";
$delete_images = mysql_query($query_delete_images) or die(mysql_error());
if(mysql_affected_rows() == 1){
}else{
redirect_to("albums.php?del_imgs=1");
}
//delete album from database
$query_delete_album= "DELETE FROM `albums` WHERE `album_id` = {$album_id}";
$delete_album= mysql_query($query_delete_album) or die(mysql_error());
if(mysql_affected_rows() == 1){
redirect_to("albums.php?delete_album=1");
}else{
redirect_to("albums.php?delete_error_album=1");
}
}else{
redirect_to("albums.php?rmdir_error=1");
}
}else{
redirect_to("albums.php");
}
我从重定向到 albums.php 得到的错误消息是 [i]rmdir_error=1[/i],所以没有图像从数据库、文件夹和相册中删除,所以 rmdir 函数不起作用因为图像仍然存在。有什么想法可能是错的吗?