php - 使用 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
文件中的变量中?帮助将不胜感激。
解决方案
您可以使用单个字段名称作为数组,而不是递增字段名称,
<input id="file-upload" type="file" name="file[]">
然后根据需要创建任意数量的实例并通过 for 循环读取它
推荐阅读
- node.js - nodejs 承诺从那时起返回值
- python - 在 python AWS lambda 中使用 aws 加密 SDK
- ios - GMSMarker 自定义图标未根据坐标出现。iOS - 斯威夫特 - 谷歌地图
- vhdl - 如何使用 VHDL 创建异或环形振荡器
- python - 通过 Python 与 Arduino 通信 C++ 程序
- angularjs - AngularJS 和 Firebase - 从数据库中获取特定值
- ios - iOS 中的键盘处理
- javascript - ReactJS - 如何更新嵌套和“正常”状态属性?
- php - 在我的函数解析错误中找到错误:语法错误,意外'}'
- javascript - 打字稿映射功能列表