问答详情
源自:2-4 PHP多文件上传案例实战

在upload.fun1.php 中这句(return $files)会报错,错误信息是( Undefined variable: files ),请大神解惑

  function getFiles(){
	  $i=0;
	  foreach($_FILES as $file){
	  if(is_string($file["name"])){
		  $files[$i]=$file;
		  $i++;
	  } else if (is_array($file["name"])){
		  foreach($file["name"] as $key=>$val){
			  $files[$i]["name"]=$file["name"][$key];
			  $files[$i]["type"]=$file["type"][$key];
			  $files[$i]["size"]=$file["size"][$key];
			  $files[$i]["tmp_name"]=$file["tmp_name"][$key];
			  $files[$i]["error"]=$file["error"][$key];
			  $i++;
		  }
	  }
	  }
	 return $files;
  }


提问者:我轻轻地来了 2016-11-02 15:22

个回答

  • 山上上下
    2016-11-03 11:55:08

    没有$files这个变量,因为直接遍历$_FILE这个值,而不是通过函数的参数变量进行传入,那每次调用这个方法就有点奇怪了。$_FILE,我是改成调用这个函数的时候需传递文件信息过来,这样就不会报这个错误了

    function getfiles($fileinfo){
        $i = 0;
        foreach($fileinfo as $file){
            if(is_string($file['name'])){
                $files[$i] = $file;
                $i++;
            }else if(is_array($file['name'])){
                foreach($file['name'] as $key=>$val){
                    $files[$i]['name'] = $file['name'][$key];
                    $files[$i]['type'] = $file['type'][$key];
                    $files[$i]['tmp_name'] = $file['tmp_name'][$key];
                    $files[$i]['size'] = $file['size'][$key];
                    $files[$i]['error'] = $file['error'][$key];
                    $i++;
                }
            }
        }
        return $files;
    }