循环文件数组未上传所有文件

    我试图根据用户上传的内容上传 1 - x 数量的文件。最近,我创建了一个 for 循环来遍历文件。我所看到的只是第一个文件上传。


有谁知道为什么只有第一个文件会上传?


class fileUpload

{


    public function __construct()

    {}

    public function upload() {


        $file_count = count($_FILES['uploadedFile']['name']);

        //$file_count = count($_FILES($file_post['name']));


        for ($i = 0; $i<$file_count; $i++) {

//          echo $file['uploadedFile']['name'][$index] . "\n";


            $target_dir = "uploads/";

            $target_file = $target_dir . basename($_FILES["uploadedFile"]["name"][$i]);

            $uploadOk = 1;

            $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));        


            // Check if $uploadOk is set to 0 by an error

            if ($uploadOk == 0) {

                return 0;

    // if everything is ok, try to upload file

            } else {

                if (move_uploaded_file($_FILES["uploadedFile"]["tmp_name"][$i], $target_file)) {

                    return basename($_FILES["uploadedFile"]["name"][$i]);

                } else {

                    return 0;

                }

            }

        }


    }

}

表单输入:


<input type="file" name="uploadedFile[]" class="inputfile" id="uploadedFileTest" data-multiple-caption="{count} files selected" multiple>


慕尼黑8549860
浏览 93回答 1
1回答

尚方宝剑之说

那是因为您使用return,return将使您退出该功能,并且您只会获得上传的第一个项目。一个简单的解决方法是:if (!move_uploaded_file($_FILES["uploadedFile"]["tmp_name"][$i], $target_file)) {&nbsp; &nbsp; return 0;}//更新2个解决方案的建议public function upload() {&nbsp; &nbsp; &nbsp; &nbsp; $file_count = count($_FILES['uploadedFile']['name']);&nbsp; &nbsp; &nbsp; &nbsp; //$file_count = count($_FILES($file_post['name']));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // add a array to save the basename on each loop&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $results = [];&nbsp; &nbsp; &nbsp; &nbsp; for ($i = 0; $i<$file_count; $i++) {//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $file['uploadedFile']['name'][$index] . "\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $target_dir = "uploads/";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $target_file = $target_dir . basename($_FILES["uploadedFile"]["name"][$i]);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $uploadOk = 1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Check if $uploadOk is set to 0 by an error&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($uploadOk == 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 0;&nbsp; &nbsp; // if everything is ok, try to upload file&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (move_uploaded_file($_FILES["uploadedFile"]["tmp_name"][$i], $target_file)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $results[] = basename($_FILES["uploadedFile"]["name"][$i]);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; //return all basename in one shot&nbsp; &nbsp; &nbsp; &nbsp; return $results;&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP