将上传的多个文件存储在不同的文件夹中


Storing multiple files uploaded in different folders

我可以在一个数组中调出我所有的多个文件,并且可以将其存储在特定的文件夹中,例如。"./documents/"。

Code for my form:
<form id="Student" name="Student" method="post" action="uploaded.php" enctype="multipart/form-data">
<input name="upload[]" id="Assign" type="file"/>
<input name="upload[]" id="Testpapers" type="file"/>
<input name="upload[]" id="others" type="file"/>
<input type="submit" name="submit" value="Submit">
Code for uploaded.php:
$number_of_uploaded_files = 0;
for ($i = 0; $i < count($_FILES['upload']['name']); $i++) 
{
 if ($_FILES['upload']['name'][$i] != '') 
{
    $dir = "documents/";
    $number_of_uploaded_files++;
    $uploaded_files[] = $_FILES['upload']['name'][$i];
    move_uploaded_file($_FILES['upload']['tmp_name'][$i], $dir. $_FILES['upload']['name'][$i])          
    }

是否可以将它们分别存储在不同的文件夹中?就像将它们存储在"文档/分配"中,然后是"文档/测试纸"。我想不出一个想法来检测数组索引属于分配或测试论文,其他。

id不会传递到服务器端。

但是您可以像下面这样分配密钥。

<input name="upload[assign]" id="Assign" type="file"/>
<input name="upload[testpapers]" id="Testpapers" type="file"/>
<input name="upload[others]" id="others" type="file"/>

在服务器端,您可以使用foreach来循环它。

foreach ($_FILES['upload']['name'] as $key => $name) {
  //...
} 

只需更改字段名称即可。然后,您可以通过$i但通过名称访问noti并决定该怎么做。