Php 多文件上传问题
我是PHP新手,想知道如何实现以下结果 我有一个HTML表单可以上传多个文件(仅PDF),最多可以上传5个文件。 对于每个文件,它都有一个选择标签,用于选择不同的用户(从数据库中检索),另一个选择标签用于不同的月份。理想情况下,如果用户一个接一个地选择文件,而不跳过中间的任何文件,就不会太复杂了Php 多文件上传问题,php,Php,我是PHP新手,想知道如何实现以下结果 我有一个HTML表单可以上传多个文件(仅PDF),最多可以上传5个文件。 对于每个文件,它都有一个选择标签,用于选择不同的用户(从数据库中检索),另一个选择标签用于不同的月份。理想情况下,如果用户一个接一个地选择文件,而不跳过中间的任何文件,就不会太复杂了 <input type=file name=pdf[] /> <select name=user[]> <option value=a>user a</op
<input type=file name=pdf[] />
<select name=user[]>
<option value=a>user a</option>
<option value=b>user b</option>
<option value=c>user c</option>
</select>
<select name=month[]>
<option value=jan> jan </option>
.
.
. so on
</select>
当我单击提交
时,这里的数据包含多个数组,一个来自$\u POST
,另一个来自$\u文件
,因此如何重新构造这些数组并将其组合到新数组中,并消除这些空数组
如:
File1.pdf --- UserA --- Jan
File2.pdf --- UserB --- Feb
Not choose ---
File4.pdf --- UserA --- Mar
Not choose ---
Array(
[0]=> Array(user=>userA, month=>Jan, filename=>File1.pdf, type=>application/pdf, size=>1234456)
[1]=> Array(user=>userB, month=>Feb, filename=>File2.pdf, type=>application/pdf, size=>1234456)
[2]=> Array(user=>userA, month=>Mar, filename=>File4.pdf, type=>application/pdf, size=>1234456)
)
提前谢谢 只需为字段指定更好的名称:
结果[0][user]
,结果[0][month]
,结果[0][pdf]
result[1][user]
,result[1][month]
,result[1][pdf]
然后只需将文件重新组合到结果中:
$results = $_POST['result'];
foreach ($results as $i => &$result) {
if (isset($_FILES['result'][$i]['pdf']) && is_array($_FILES['result'][$i]['pdf'])) {
$result = array_merge($result, $_FILES['result'][$i]['pdf']);
}
}
嗨,谢谢你的及时回复。我改变为urs,但我对第二个论点有问题;t数组:(@jasper请参阅更新。您可能需要进一步自定义此数组以满足您的需要,但我希望您能理解。