2016-06-09 72 views
1

我正在从服务器上的一个文件夹生成一个文件列表。现在我想让用户通过单击垃圾桶按钮来删除服务器上的文件。如何删除一个文件点击一个跨度以及删除确认

我无法做到这一点,既不知道如何在删除前显示删除确认。

PHP

for($index=0; $index<$count; $index++){ 
    $name = $filelist[$index]; 
    $extn = findexts($filelist[$index]); 
    $size = human_filesize(filesize('./storage/'.$filelist[$index])); 
    $thelist .= '<li><span class="type">'.$extn.'</span><span class="link"><a href=./storage/'.$name.'>'.$name.'</a></span><span class="size">'.$size.'</span><a href=delete.php?delete='.$name.'><span class="fa fa-trash-o fa-fw" aria-hidden="true"></span></a> 
</li>'; 
} 

DELETE.PHP

<?php 
    if(isset($_GET['delete'])) 
    { 
     unlink(__FILE__); 
    } 
?> 

我不知道我怎样才能删除它。

+1

不要**不**做到这一点。如果您的浏览器决定对网页上的所有链接有帮助并预先获取,那么您将自动检查您为其建立删除链接的每个文件。这是一个荒谬的不良设计。切勿在“GET”类型的网址上放置导致自我变化的脚本。 '__FILE__'将解析为你的'delete.php',所以你会自动核对你想用来删除其他文件的脚本。 –

+1

这会尝试删除_当前file_ !? O_o –

+0

@Marc B我不知道该怎么做。你可以帮我吗? – Ayan

回答

0

链接

<a href="storage/filename.ext" onClick="delfile()" id="test">Your File</a> 

脚本:

<script> 
    function delfile(){ 
    var c =document.getElementById("test").href; 
    alert('are you sure you want to delete?'); 
    var filename = c.replace(/^.*[\\\/]/, ''); 
    var redirect_path = 'delete.php?file_name='+filename; 
    window.location.href=redirect_path; 
} 
</script> 

现在上删除PHP删除通过获取文件名文件。

PHP

<?php 

if($_REQUEST['file_name']){ 
    $filename=$_REQUEST['file_name']; 
    unlink(filename,context); 
} 
?> 
+0

在我的代码中如何获得id?因为我直接从文件夹列出文件而不是从数据库中列出文件。 – Ayan

+0

有没有关于你在数据库中存储的图像的任何信息? –

+0

这些不是要存储的图像。这些可以是存储在服务器上的文件夹中的任何文件。我只是列出页面中的文件,也可以选择删除它们。 – Ayan