按钮单击,确认和删除

时间:2011-08-28 16:57:17

标签: php

我正在构建一个简单的PHP文件管理器,我需要帮助才能删除文件。

基本上,我如何检查是否检查.filename checkbox,其中.filename是父<tr>的类,以及文件的名称,如果是,则何时单击<input type="submit" name="delete" value="Delete Selected Files" />,从/uploads/目录中删除所选文件。

我没有使用任何类型的数据库或任何东西,只是网站上的密码保护区域。我意识到这不是最安全的做事方式。

我已经有一个填充表格的脚本:

<table>
    <tr>
        <td>&nbsp;</td>
        <td>File Name:</td>
        <td>File Size:</td>
    </tr>
    <tr class="filemane">
        <td><input type="chekbox" /></td>
        <td><a href="/uploads/file-name.ext" target="_blank">file-name.ext</a></td>
        <td>10</td>
    </tr>
</table>
<table>
    <tr>
        <td><input type="submit" name="upload" value="Upload Files" /></td>
        <td><input type="submit" name="delete" value="Delete Selected Files" /></td>
    </tr>
</table>

所以我只需要知道如何检查选中的复选框,并从/uploads/目录中删除相关文件。

3 个答案:

答案 0 :(得分:2)

你可以使用: HTML:

<input type="chekbox" name="check_files[]" value="unique_file_id1"/>
<input type="chekbox" name="check_files[]" value="unique_file_id2"/>

PHP:

if (!emptY($_POST['check_files'])) {
    foreach ($_POST['check_files'] as $checked_file) {
        if(file_exists("path" . $checked_file))) {
            unlink("path" . $checked_file); 
        }
        //other logic
    }
}

答案 1 :(得分:0)

<?php

if (isset($_POST['delete']))
{
    for($i=0;$i<count($_POST['check_files']);$i++)
    {
       if (file_exists($_POST['check_files'][$i]))
       {
           unlink($_POST['check_files'][$i]);
       }
    }
}
?>

答案 2 :(得分:0)

也许尝试使用JavaScript和Ajax请求:

var chkBox, destroy, fileName;
while(chkBox = document.querySelector('.filename input:checked')){ 
    fileName = chkBox.parentNode.parentNode.querySelector('a').href;
    alert('Removing file: ' + fileName); // send ajax request etc
    destroy = chkBox.parentNode.parentNode; 
    destroy.parentNode.removeChild(destroy);
}

工作示例:http://jsfiddle.net/E5WWN/3/