Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从文件名创建文件夹并保存文件。但第一个文件夹总是有问题_Php_Fine Uploader - Fatal编程技术网

Php 从文件名创建文件夹并保存文件。但第一个文件夹总是有问题

Php 从文件名创建文件夹并保存文件。但第一个文件夹总是有问题,php,fine-uploader,Php,Fine Uploader,我已经改变了使用上传的方式。 我注意到,当我选择要上载的文件夹时,它会选择所有内部文件,甚至是子文件夹中的文件。在我的主文件夹中有许多子文件夹,每个子文件夹中有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.m

我已经改变了使用上传的方式。 我注意到,当我选择要上载的文件夹时,它会选择所有内部文件,甚至是子文件夹中的文件。在我的主文件夹中有许多子文件夹,每个子文件夹中有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>
if(isset($\u POST['submit'])){
foreach($_FILES['FILES']['name']作为$i=>$name){
if(strlen($_FILES['FILES']['name'][$i])>1){
$Folder=explode('-',$name)[1];
$Path='BaberZamanTest/TEST/'.trim($Folder);
//首先创建目录或文件夹(如果不存在)
如果(!file_存在($Path)){
mkdir($Path,0777,true);
}
//如果文件夹在$Path中没有文件$name,则移动文件
如果(!file_存在($Path.'/'.$name)){
移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$i;
}
}
}
}
现在是什么问题。 总的来说,它工作得很好。但每次它都会跳过第一个文件夹或第一个文件夹中的一些文件。 当我选择我的文件夹时,它会显示正确的文件数。文件夹中有
10个子文件夹,所有子文件夹中有
22个子文件夹。当我选择时,它会显示正确的文件数
22
,但当上载过程运行时,它通常会上载
20
文件。特别是它只遗漏了第一个文件夹。所有其他文件夹工作正常。所有文件都到了


在这个问题上请帮助我

我想你需要先编辑你的
php.ini
文件。因为
max\u file\u上传的默认数量是
20
,我敢肯定你错过了这一部分

转到您的
public\u html
并找到
php.ini
文件。您可以创建一个新的
php.ini
文件,如果不存在,请使用文本编辑器对其进行编辑并将其放在那里

max_file_uploads=50;
或者需要多少文件


它将工作

如果有人的名字中有
-
,希望你的系统不会失败。。。