首页 > 解决方案 > 使用 PHP 上传用户定义数量的文件

问题描述

我试图通过<input type="file">使用 Javascript(+ 和 - 图标/按钮<i>)生成新元素,让我网站上的用户能够上传无限数量的文件:

<form action="action.php" name="form" method="post" enctype="multipart/form-data">
            <input id="file-upload-1" type="file" name="file1">
            <i id="upload-more" class="fas fa-plus"></i>
            <input id="file-upload-2" type="file" name="file2">
            <i id="upload-less" class="fas fa-minus"></i>
...
...
<input type='submit' name='submit-info' value='Submit Button'>
</form>

在我的 action.php 文件中,我想捕获所有上传的文件并将其保存到如下变量中'file1'

if (isset($_POST['submit-info'])) {
   $file1 = $_FILES['file1'];
        $fileName1 = $_FILES['file1']['name'];
        $fileTmpName1 = $_FILES['file1']['tmp_name'];
        $fileSize1 = $_FILES['file1']['size'];
        $fileError1 = $_FILES['file1']['error'];
        $fileType1 = $_FILES['file1']['type'];
}

由于我不知道用户是否上传了 0、5 或 100 个文件,我将如何将所有用户提交的文件保存到我的action.php文件中的变量中?帮助将不胜感激。

标签: phphtml

解决方案


您可以使用单个字段名称作为数组,而不是递增字段名称,

<input id="file-upload" type="file" name="file[]">

然后根据需要创建任意数量的实例并通过 for 循环读取它


推荐阅读