【发布时间】:2021-05-01 03:47:07
【问题描述】:
我之前问过this question,但由于this,我找到了不同的解决方案/版本。
为了对 Web 应用程序有一些了解,我将在此处引用它:
至于分配,我创建了一个过滤器,该过滤器修改了一个连接到打印出订单文件的 API 的配置。 Web 应用程序可以选择保存修改后的 Orderlist,并在其中添加日期和编号。
修改后的订单列表的输出:
Order 25-01-21 Versie 1.xml
Order 26-01-21 Versie 1.xml
Order 26-01-21 Versie 2.xml
Order 26-01-21 Versie 3.xml
Order 26-01-21 Versie 4.xml
我被要求添加一个允许他删除文件的工具,如果他愿意的话。经过一番挣扎,环顾四周,并在我提出这个问题之前提出了一个惊人的方法:
<?php
$dir = '..\api-ivolved\s_orderlist';
$ar=glob($dir); // Change this input
foreach(glob("*.xml") as $filename) {
echo "<input type=\"checkbox\" name=\"files[]\" value=".$filename."/>" . htmlspecialchars($filename) . "<br />"; }
if (isset($_GET['delete'])){
// Make sure files are checked/marked for deletion.
if (!empty($_GET['files[]'])) {
// Loop through each file and delete
foreach ($_GET['files[]'] as $file) {
unlink($file);
}
}
}
?>
<form class="deleteFile" method="get" enctype="multipart/form-data">
<br />
<strong> Delete checked files? </strong> <input type="checkbox" name="delete" value="1"/><br/>
<input type="submit" id="delete" value="Delete file"/>
</form>
现在的问题是,在我选中文件复选框并确认删除文件后,该文档仍保留在文件夹中。有人可以指出或举例说明如何解决此问题吗?
【问题讨论】:
-
$_GET['files']不存在。您的表单中没有name="files"。 (根据您的 echo 语句判断,您的表单可能至少有一个 outside。未提交表单之外的字段...) -
P.S.不上传文件时,
enctype="multipart/form-data"不是必需的。 -
@ADyson
echo "<input type=\"checkbox\" name=\"files[]\"[..]包含我意识到的名称,但即使添加也不会改变结果。 -
@ADyson 感谢您的通知!我仍然从我之前有输入文件的尝试中添加了 enctype,所以我将删除它。 C:
-
even adding that到底是什么意思?在 PHP 端它应该仍然是$_GET['files']...因为它是一个数组。就像我说的,主要问题是输入在表单之外。它们需要在<form>标记内回显