我改变了上传的工作方式。我注意到,当我选择要上传的文件夹时,它会选择所有内部文件,甚至从子文件夹中选择所有内部文件,并且在我的主文件夹中有许多子文件夹,并且每个子文件夹中有 2 到 3 个文件。文件名如下。
6-AALIYAH WIGHTON - 299-SOLO-JAZZ-6 YEARS AND UNDER
7-ABIGAIL PALMER - 301-SOLO-LYRICAL-6 YEARS AND UNDER
4-ZOE CAMPBELL - 299-SOLO-JAZZ-6 YEARS AND UNDER.mp3
因此,在文件名中,第二个参数是文件夹名称。例如,在上面 3 个示例名称中,AALIYAH WIGHTON, ABIGAIL PALMER&ZOE CAMPBELL是文件夹名称。需要首先创建它,然后文件将进入这些文件夹。
这是代码。
if(isset($_POST['submit'])){
foreach ($_FILES['files']['name'] as $i => $name) {
if(strlen($_FILES['files']['name'][$i]) > 1) {
$Folder = explode('-', $name)[1];
$Path = 'BaberZamanTest/TEST/'.trim($Folder);
//First Make Directories or Folder if not exist
if(!file_exists($Path)){
mkdir($Path, 0777, true);
}
//If the Folder has no file $name in $Path then Move file
if(!file_exists($Path.'/'.$name)){
move_uploaded_file($_FILES['files']['tmp_name'][$i], $Path.'/'.$name);
}
}
}
}
<form method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="files" multiple webkitdirectory mozdirectory>
<input class="button" type="submit" name="submit" value="Upload" />
</form>
现在问题是什么。总体而言,它运行完美。但每次它都会跳过第一个文件夹,或者第一个文件夹中的一些文件。当我选择文件夹时,它会显示正确的文件数量。文件夹中有10子文件夹,所有子文件夹共有22文件总数。当我选择时,它显示正确的文件数量22,但是当上传过程运行时,它经常上传20文件。特别是它只错过了第一个文件夹。所有其他文件夹都工作正常。所有文件都到那里。
请帮助我解决这个问题
幕布斯6054654