我正在构建一个简单的PHP文件管理器,我需要帮助才能删除文件。
基本上,我如何检查是否检查.filename checkbox
,其中.filename是父<tr>
的类,以及文件的名称,如果是,则何时单击<input type="submit" name="delete" value="Delete Selected Files" />
,从/uploads/
目录中删除所选文件。
我没有使用任何类型的数据库或任何东西,只是网站上的密码保护区域。我意识到这不是最安全的做事方式。
我已经有一个填充表格的脚本:
<table>
<tr>
<td> </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/
目录中删除相关文件。
答案 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);
}