Php 多路上传到文件夹

Php 多路上传到文件夹,php,file-upload,directory,Php,File Upload,Directory,我试图上传多个文件,根据序列号创建一个文件夹,并将文件保存在其中。我的代码如下: 用于多次上载的HTML代码: 用于多次上传的PHP代码 尽管我上传了多个文件,但只有最后一个文件保存在目录中。如何修改代码以便上载多个文件? 感谢您的帮助:这在中是可能的。PHP 5.4示例: <!doctype html> <html> <head> <title>Test</title> </head>

我试图上传多个文件,根据序列号创建一个文件夹,并将文件保存在其中。我的代码如下:

用于多次上载的HTML代码:

用于多次上传的PHP代码

尽管我上传了多个文件,但只有最后一个文件保存在目录中。如何修改代码以便上载多个文件? 感谢您的帮助:

这在中是可能的。PHP 5.4示例:

<!doctype html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form method="post" enctype="multipart/form-data">
            <input type="text" name="Filename">
            <input type="file" name="my_file[]" multiple>
            <input type="submit" value="Upload">
        </form>
        <?php
            if (isset($_FILES['my_file'])) {
                $myFile = $_FILES['my_file'];
                $fileCount = count($myFile["name"]);
                $Filename=$_POST['Filename'];
                $structure = "Uploads/SystemConfiguration/$Filename";
                if (!mkdir($structure, 0777, true))
                {
                 die('Failed to create folders...');
                }

                for ($i = 0; $i < $fileCount; $i++) {
                $name = $_FILES["my_file"]["name"][$i];
                $tmp_name=$_FILES["my_file"]["tmp_name"][$i];
                move_uploaded_file($tmp_name,"$structure/$name");
                    ?>
                        <p>File #<?= $i+1 ?>:</p>
                        <p>
                            Name: <?= $myFile["name"][$i] ?><br>
                            Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
                            Type: <?= $myFile["type"][$i] ?><br>
                            Size: <?= $myFile["size"][$i] ?><br>
                            Error: <?= $myFile["error"][$i] ?><br>
                        </p>
                    <?php
                }
            }
        ?>
    </body>
</html>
以下是在文件对话框中选择2项后在Chrome中的外观:

下面是点击上传按钮后的样子


这只是一个完整答案的草图。有关在PHP中正确、安全地处理文件上载的更多信息,请参阅。

Hey!谢谢你的回复。我想知道如何将多个文件上传到创建的目录中。目前,只有一个文件正在上载。只需添加move_upload_file$myFile[tmp_name][$i],$structure/$name;在上面的代码中,使用for循环。
if (count($_FILES["myfile"]) > 0)
{
    for ($i = 0; $i < count($_FILES["myfile"]["name"]); $i++) 
    {
        foreach ($_FILES["myfile"]["error"][$i] as $key => $error) {
            if ($error == UPLOAD_ERR_OK) {

                $structure = "Uploads/SystemConfiguration/$formno"; //FormNo is the serial number queried from the database
                if (!mkdir($structure, 0777, true))
                {
                    die('Failed to create folders...');
                }
                $tmp_name = $_FILES["myfile"]["tmp_name"][$i][$key];
                $name = $_FILES["myfile"]["name"][$i][$key];
                $target = $target .'/' .$_FILES['myfile']['name'][$i] ; 
                $filepath=$_FILES['myfile']['name'][$i] ;
                if(move_uploaded_file($tmp_name,"$structure/$name")) 
                { 
                    echo "<center>The file ". basename( $_FILES['myfile']['name'][$i]). " has been uploaded.</center>"; 
                } 
                else 
                { 
                    echo "No File was uploaded"; 
                } 
            }
        }
    }
}
<!doctype html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form method="post" enctype="multipart/form-data">
            <input type="text" name="Filename">
            <input type="file" name="my_file[]" multiple>
            <input type="submit" value="Upload">
        </form>
        <?php
            if (isset($_FILES['my_file'])) {
                $myFile = $_FILES['my_file'];
                $fileCount = count($myFile["name"]);
                $Filename=$_POST['Filename'];
                $structure = "Uploads/SystemConfiguration/$Filename";
                if (!mkdir($structure, 0777, true))
                {
                 die('Failed to create folders...');
                }

                for ($i = 0; $i < $fileCount; $i++) {
                $name = $_FILES["my_file"]["name"][$i];
                $tmp_name=$_FILES["my_file"]["tmp_name"][$i];
                move_uploaded_file($tmp_name,"$structure/$name");
                    ?>
                        <p>File #<?= $i+1 ?>:</p>
                        <p>
                            Name: <?= $myFile["name"][$i] ?><br>
                            Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
                            Type: <?= $myFile["type"][$i] ?><br>
                            Size: <?= $myFile["size"][$i] ?><br>
                            Error: <?= $myFile["error"][$i] ?><br>
                        </p>
                    <?php
                }
            }
        ?>
    </body>
</html>