给出foreach循环php的无效参数

时间:2016-08-29 15:36:15

标签: php file-upload foreach

我试图通过PHP将图像发布到我的网站文件目录中。这个确切的代码适用于网站上的另一个页面,但我遇到了让它在这个页面上工作的问题:

    if(isset($_FILES['files'])){
        $errors= array();
        for($i=0;$i<count($_FILES['files']['tmp_name']); $i++){

            $file_name = $_FILES['files']['name'][$i];
            $file_size =$_FILES['files']['size'][$i];
            $file_tmp =$_FILES['files']['tmp_name'][$i];
            $file_type=$_FILES['files']['type'][$i];  
            if($file_size > 2097152){
                $errorMessage2.="File size must be less than 2 MB";
            }   

            $img_dir="../images/property_directory";
            if(is_dir($img_dir)==false){
                mkdir("$img_dir", 0700, true);    // Create directory if it does not exist
            }

            if(is_dir("$img_dir/".$file_name)==false){
                move_uploaded_file($file_tmp,"$img_dir/". $file_name);
                $filePath[$i] = "$img_dir/" . $file_name;   
            }else{// rename the file if another one exist
                $new_dir="$img_dir/".$file_name.time();
                rename($file_tmp,$new_dir) ; 
               $filePath[$i] = "$img_dir/" . $file_name.time();      
           }
      }
   }

if(empty($errorMessage2)){
    $filePathArr = "";
    foreach ($filePath as $v) {
       $filePathArr .= "$v ";
    }

foreach循环抛出一个错误,说“为foreach()提供了无效的参数”我不认为该数组是空的,因为我使用files []按钮为它提供了一个文件。

1 个答案:

答案 0 :(得分:0)

你的循环错误。您应该计算$_FILES['files']['name'],但不计算$_FILES['files']['tmp_name']。请参阅以下代码:

for($i=0;$i<count($_FILES['files']['name']); $i++) {
....
}