从文件名创建文件夹并保存文件。但是第一个文件夹总是有问题
Creating Folders From File Name and Save the Files. But First Folder always goes in problem
我改变了使用上传的方式。
我注意到当我 select 一个文件夹上传它时 select 所有内部文件甚至来自子文件夹,在我的主文件夹中有很多子文件夹,在每个子文件夹中,有 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>
现在是什么问题。
总的来说它工作完美。但是每次它都会跳过第一个文件夹,或者第一个文件夹中的一些文件。
当我 select 我的文件夹时,它显示正确的文件数。文件夹中有 10
个子文件夹,所有子文件夹总共有 22
个文件。当我 select 时,它显示正确的文件数 22
但是当上传过程运行时,它经常上传 20
个文件。特别是它只错过了第一个文件夹。所有其他文件夹都可以正常工作。所有文件都在那里。
请帮我解决这个问题
我认为您需要先编辑 php.ini
文件。因为 max_file_uploads
的默认数字是 20
,我敢肯定你错过了这部分。
去找你 public_html
并找到 php.ini
文件。如果不存在,您可以创建一个新的 php.ini
文件,用文本编辑器编辑它并放在那里
max_file_uploads=50;
或者你想要多少个文件。
它会起作用
我改变了使用上传的方式。 我注意到当我 select 一个文件夹上传它时 select 所有内部文件甚至来自子文件夹,在我的主文件夹中有很多子文件夹,在每个子文件夹中,有 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>
现在是什么问题。
总的来说它工作完美。但是每次它都会跳过第一个文件夹,或者第一个文件夹中的一些文件。
当我 select 我的文件夹时,它显示正确的文件数。文件夹中有 10
个子文件夹,所有子文件夹总共有 22
个文件。当我 select 时,它显示正确的文件数 22
但是当上传过程运行时,它经常上传 20
个文件。特别是它只错过了第一个文件夹。所有其他文件夹都可以正常工作。所有文件都在那里。
请帮我解决这个问题
我认为您需要先编辑 php.ini
文件。因为 max_file_uploads
的默认数字是 20
,我敢肯定你错过了这部分。
去找你 public_html
并找到 php.ini
文件。如果不存在,您可以创建一个新的 php.ini
文件,用文本编辑器编辑它并放在那里
max_file_uploads=50;
或者你想要多少个文件。
它会起作用