Php 删除包含图像的相册文件夹
我正在尝试删除包含所有图像的相册。存储的相册和图像的路径如下../\u上载/Php 删除包含图像的相册文件夹,php,image,directory,sql-delete,Php,Image,Directory,Sql Delete,我正在尝试删除包含所有图像的相册。存储的相册和图像的路径如下../\u上载//。以下是我的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`, `
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");
}
if(isset($\u GET['album\u id'])==true){
$album_id=(int)$\u GET['album_id'];
$query\u album\u info=“选择'albums`.'album\u id`、'albums`.'album\u name`、'images`.'image\u name`、'images`.'image\u ext”`
从`专辑`
左键连接“相册”上的“图像”。“相册id”=“图像”。“相册id”`
其中'albums`.'album\u id`={$album\u id}
限制1”;
$album\u info=mysql\u query($query\u album\u info,$connection)或die(mysql\u error());
$row\u album=mysql\u fetch\u assoc($album\u info);
$album=$row_album['album_name'];
$img_file=$row_相册['image_name'.....$row_相册['image_ext'];
$images=scandir(“../\u uploads/{$album}/”;
未设置($images[0]);
未设置($images[1]);
//回显“”,打印($images,true),“”;
foreach($images作为$image){
取消链接(“../\u上传/{$album}/{$image\u文件}”);
}
if(rmdir(“../\u uploads/{$album}”)==true){
//从数据库中删除相册的所有图像
$query\u delete\u images=“从`images`删除,其中`album\u id`={$album\u id}”;
$delete_images=mysql_query($query_delete_images)或die(mysql_error());
如果(mysql_受影响的_行()==1){
}否则{
重定向到(“albums.php?del_imgs=1”);
}
//从数据库中删除相册
$query\u delete\u album=“从'albums'中删除,其中'album\u id`={$album\u id}”;
$delete_album=mysql_query($query_delete_album)或die(mysql_error());
如果(mysql_受影响的_行()==1){
将_重定向到(“albums.php?delete_album=1”);
}否则{
将_重定向到(“albums.php?删除_错误_album=1”);
}
}否则{
将_重定向到(“albums.php?rmdir_error=1”);
}
}否则{
将_重定向到(“albums.php”);
}
重定向到albums.php时收到的错误消息是[I]rmdir_error=1[/I],因此不会从数据库、文件夹和相册中删除任何图像,因此rmdir函数不起作用,因为图像仍然存在。有什么问题吗?您在循环中使用了错误的变量(
$image\u file
而不是$image
)。因此不会删除任何内容,当您尝试调用rmdir()
时,目录不是空的
天哪,谢谢你!没有显示这一点我现在觉得有点愚蠢…:-你确定,你拥有文件夹的所有R/W权限,你想删除哪些文件?
// Use the correct variable in the loop statement: changed $image to $image_file
foreach($images as $image_file) {
// Don't attempt to remove the current directory or parent
// Since scandir() will return those too...
if ($image_file !== "." && $image_file !== "..") {
unlink("../_uploads/{$album}/{$image_file}");
}
}