Php 多个文件无法正常工作时的文件上载

Php 多个文件无法正常工作时的文件上载,php,file-upload,multiple-file-upload,Php,File Upload,Multiple File Upload,我的代码有一个奇怪的问题: 有三个输入文件标记。以下是上传场景及其结果: 所有三个文件同时出现-成功 唯一的图片-成功 只有音频故障 只有视频故障 一张图片和一个音频-图片成功,音频失败 一张图片和一个视频-图片成功,视频失败 一个音频和一个视频-其中一个成功 <?php session_start(); if(!isset($_SESSION["username"])){ header('Location: index.php'); } if(isset($_POST["ye

我的代码有一个奇怪的问题:

有三个输入
文件
标记。以下是上传场景及其结果:

  • 所有三个文件同时出现-成功
  • 唯一的图片-成功
  • 只有音频故障
  • 只有视频故障
  • 一张图片和一个音频-图片成功,音频失败
  • 一张图片和一个视频-图片成功,视频失败
  • 一个音频和一个视频-其中一个成功

    <?php 
    session_start(); 
    if(!isset($_SESSION["username"])){
        header('Location: index.php');
    }
    if(isset($_POST["year"])){
        ini_set('display_errors',1);
        error_reporting(E_ALL);
        var_dump($_FILES);
        $year = $_POST["year"];
        $height = $_POST["height"];
        $weight = $_POST["weight"];
        $school = $_POST["school"];
        $class = $_POST["class"];
        $target_dir_img = "./pictures/";
        $target_dir_aud = "./audios/";
        $target_dir_vid = "./videos/";
    
        $uploadOk = 1;
    
        $target_files = array();
    
        $target_img = basename($_FILES['uploadedFiles']['name'][0]);
        var_dump($target_img);
        if(strcmp($target_img,'')){
            $imageFileType = pathinfo($target_img,PATHINFO_EXTENSION);
    
            $newImageName = $target_dir_img . $_SESSION['username']."_".$_POST['year'].".". $imageFileType;
    
            if($imageFileType != "jpg" && $imageFileType != "jpeg") {
                echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
                $uploadOk = 0;
            }
            else {
                $target_files[] = $newImageName;
            }
        }
    
        // Allow certain file formats
    
        $target_aud = basename($_FILES['uploadedFiles']['name'][1]);
        var_dump($target_aud);
        if(strcmp($target_aud,'')) {
    
            $audioFileType = pathinfo($target_aud, PATHINFO_EXTENSION);
    
            $newAudioName = $target_dir_aud . $_SESSION['username']."_".$_POST['year'].".". $audioFileType;
    
            if($audioFileType != "mp3") {
                echo "Sorry, only MP3 files are allowed.";
                $uploadOk = 0;
            }
            else {
                $target_files[] = $newAudioName;
            }
        }
    
        $target_vid = basename($_FILES['uploadedFiles']['name'][2]);
        var_dump($target_vid);
        if(strcmp($target_vid,'')){
    
            $videoFileType = pathinfo($target_vid, PATHINFO_EXTENSION);
    
            $newVideoName = $target_dir_vid . $_SESSION['username']."_".$_POST['year'].".". $videoFileType;
    
            if($videoFileType != "mp4") {
                echo "Sorry, only MP4 files are allowed.";
                $uploadOk = 0;
            }
            else {
                $target_files[] = $newVideoName;
            }
        }
    
        var_dump($target_files);
    
        // Check if $uploadOk is set to 0 by an error
        if ($uploadOk == 0) {
            echo "Sorry, your file was not uploaded.";
        // if everything is ok, try to upload file
        } else {
            for($i=0; $i<sizeof($target_files); $i++){
                if (move_uploaded_file($_FILES['uploadedFiles']['tmp_name'][$i], $target_files[$i])) {
                    echo "The file ". basename( $_FILES['uploadedFiles']['name'][$i]). " has been uploaded.";
                } else {
                    echo "Sorry, there was an error uploading your file.";
                }
            }
        }
    }
    ?>
    
    
    <h1>Welcome <?php echo $_SESSION["username"]; ?>!</h1>
    
    <h2>Data</h2>
    <form action="" method="POST" enctype="multipart/form-data">
        <p><label>Select Year : </label>
        <select id="year" name="year">
            <?php 
                for($i=1901; $i<=2020; $i++){
                    echo '<option value="'.$i.'">'.$i.'</option>';
                }
            ?>
        </select></p>
        <p><label>Height : </label>
        <input type="text" id="height" name="height" placeholder="Height" /></p>
        <p><label>Weight : </label>
        <input type="text" id="weight" name="weight" placeholder="Weight" /></p>
        <p><label>School : </label>
        <input type="text" id="school" name="school" placeholder="School" /></p>
        <p><label>Class : </label>
        <input type="text" id="class" name="class" placeholder="Class" /></p>
        <p><label>Choose picture : </label>
        <input type="file" id="picture" name="uploadedFiles[]" accept="image/jpeg, image/jpg" /></p>
        <p><label>Choose Audio : </label>
        <input type="file" id="audio" name="uploadedFiles[]" accept="audio/mp3" /></p>
        <p><label>Choose Video : </label>
        <input type="file" id="video" name="uploadedFiles[]" accept="video/mp4" /></p>
    
        <input type="submit" id="submit" name="submit" value="submit" /></p>
    </form>
    
    
    欢迎
    资料
    选择年份:
    

    高度:

    重量:

    学校:

    类别:

    选择图片:

    选择音频:

    选择视频:


  • 有关于它如何发生的信息吗?

    对我来说很有用。!!我不知道为什么,但我面临上述所有情况。如果我同时上载所有文件,则不会导致任何问题!:(这很奇怪!它对我有效。!!我不知道为什么,但我面临上述所有情况。如果我同时上载所有文件,则不会导致任何问题!:(这很奇怪!