2016-04-12 136 views
-1
<?php 
include ('config.php'); 

echo '<script>confirm("Are you sure?");</script>'; 

if(isset($_GET['fileid'])) 
{ 
    $fileid = $_GET['fileid']; 
    $target_dir = "img/"; 
    $target_file = $target_dir .$_GET['fileid']; 
    $query = "DELETE FROM file_info WHERE fileid='$fileid'"; 
    $result = mysqli_query($conn,$query); 
    $row = mysqli_fetch_array($result); 
    $path = "img/".$row['filename']; 

    if($result) 
    { 
     unlink($path); 
     echo'<script>window.location ="table.php";</script>'; 
    } 
    else 
    { 
     echo'<script>window.location ="table.php";</script>'; 
    } 
} 
?> 

我不知道为什么它不工作。从php文件夹中删除图像

此代码正在更新数据库,但不删除文件夹中的文件需要删除它。

+2

删除查询不获取从数据库中的数据!相反,你需要使用选择查询! – Saty

+0

在删除期间您将不会获得记录。您需要先获取并删除记录。所以首先使用'SELECT'语句,然后去'DELETE'语句。 – Yash

+0

您还应该小心将$ _GET参数直接传递给SQL查询。人们可以很容易地将'1 OR 1 = 1'作为'fileid'来传递,这会从'file_info'表中删除所有记录。如果'fileid'字段是数据库中的整数,则使用准备好的语句或类型'fileid'来int – derhansen

回答

0

选择查询使用fileid获取文件名。然后执行删除语句。

<?php 
$path = "img/".$row['filename']; 
if(file_exists ($path)) 
    unlink($path); 
else 
echo "file not found"; 

?> 
0

打印的$结果&交叉检查你是否能够达到内如果()块。同样从你得到的值$row['filename']获得它首先使用select查询选择值。

0

更改删除查询,选择并给予绝对路径,并获取关联数组为$row['filename']

CODE

$fileid = $_GET['fileid']; 
$target_dir = "img/"; 
$target_file = $target_dir .$_GET['fileid']; 
$query = "SELECT filename FROM file_info WHERE fileid='$fileid'"; 
$result = mysqli_query($conn,$query); 
$row = mysqli_fetch_assoc($result); // And fetch assoc array 

$path = "c:\project\img\".$row['filename']; 
相关问题