Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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 for循环_Php_File Upload_Upload - Fatal编程技术网

多文件上传php for循环

多文件上传php for循环,php,file-upload,upload,Php,File Upload,Upload,我正在编写一个脚本,应该可以上传多个文件。 我有这个html结构 HTML 测试上传 这是我写的php上传类脚本 PHP 过去我使用for()循环来完成多个上传任务,没有问题,但现在它只上传一个文件。我也在这里搜索了stackoverflow,有些人不鼓励使用foreach()循环来上传多个文件。有人能给我一个解决这个问题的建议吗 您正在呼叫返回“ok”aftermove\u uploaded\u file在上传第一个文件后中断for循环。。只要删除该行,它就应该可以了。如果从函数中调用

我正在编写一个脚本,应该可以上传多个文件。 我有这个html结构

HTML


测试上传
这是我写的php上传类脚本

PHP



过去我使用
for()
循环来完成多个上传任务,没有问题,但现在它只上传一个文件。我也在这里搜索了stackoverflow,有些人不鼓励使用
foreach()
循环来上传多个文件。有人能给我一个解决这个问题的建议吗

您正在呼叫
返回“ok”
after
move\u uploaded\u file
在上传第一个文件后中断for循环。。只要删除该行,它就应该可以了。

如果从函数中调用,return语句将立即结束当前函数的执行,并将其参数作为函数调用的值返回


我发现这是一个很棒的脚本,可以通过PHP上传多个文件。

感谢您的澄清。在上传操作全部完成后,我移动了
返回
,现在它工作顺利。
<form method="POST" action="" enctype="multipart/form-data">
<input type="file" name="test[]" multiple="multiple">
<button type="submit">Test upload</button>
</form>
<?php 

class Uploader{

public function upload($files){ 

        $this->files = count($files['name']);

        try{

                for($i = 0; $i < $this->files; $i++){

                    $this->error = $files['error'][$i];
                    $this->tmp_name = $files['tmp_name'][$i];
                    $this->name = basename($files['name'][$i]);
                    $this->size = $files['size'][$i];

                    if($this->error == UPLOAD_ERR_OK){

                        if(is_uploaded_file($this->tmp_name)){

                            move_uploaded_file($this->tmp_name, "$this->path/$this->name");

                        return 'ok';

                    } else {

                        throw new Exception('Error tmp file');

                    } 

                } else {

                throw new Exception('Error');

                }
            }

    }
    catch(Exception $e){

            return $e->getMessage();

    }
}

}
?>