Multiple Picture Upload Problems

前端 未结 1 890
误落风尘
误落风尘 2021-01-28 19:51

I have a simple script that can upload files on my server and insert the details into database.

With code below I am getting two errors..

  1. I tried to all

相关标签:
1条回答
  • 2021-01-28 20:37

    Fo the first error, the errors array is outside the foreah so you doesn't clear the error for each file, and the query to insert is outside the if that checks errors so is always ecexcuted

    For the second error the same, the query is executed always you have to check if the file is uploaded.

    <?php
    
        include_once('connect.php');
    
        if(isset($_FILES['files'])){
            $filesErrors = 0;
            foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
                // MOved errors inside the foreach to clear it each loop
                $errors = array();
    
                // Check file is uploaded
                if ($_FILES['files']['error'][$key] == UPLOAD_ERR_NO_FILE){
                    // Continue with the next file
                    continue; 
                }
    
                $file_name = $key.$_FILES['files']['name'][$key];
                $file_size = $_FILES['files']['size'][$key];
                $file_type = $_FILES['files']['type'][$key];
    
                if($file_type == "image/gif"){
                    $sExt = ".gif";
                } elseif($file_type == "image/jpeg" || $file_type == "image/pjpeg"){
                    $sExt = ".jpg";
                } elseif($file_type == "image/png" || $file_type == "image/x-png"){
                    $sExt = ".png";
                }
                if (!in_array($sExt, array('.gif','.jpg','.png'))) {
                    $errors[] = "Image types alowed are (.gif, .jpg, .png) only!";
                }
    
                $file_tmp = $_FILES['files']['tmp_name'][$key];
                $file_type = $_FILES['files']['type'][$key];
                if($file_size > 2097152){
                    $errors[]='File size must be less than 2 MB';
                }    
    
    
                if(empty($errors) == true){
                    $desired_dir = "user_data";
                    // Execute query inside the errors check
                    $query = "INSERT into offers_pics (`offer_id`,`pic_name`,`pic_type`) VALUES ('$user_id','$file_name','$file_type'); ";
                    $result = mysqli_query($link,$query);
    
                    if(is_dir($desired_dir) == false){
                        mkdir("$desired_dir", 0700);        // Create directory if it does not exist
                    }
                    if(is_dir("$desired_dir/".$file_name) == false){
                        move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
                    }else{                                  // rename the file if another one exist
                        $new_dir = "$desired_dir/".$file_name.time();
                         rename($file_tmp,$new_dir) ;               
                    }
                }else{
                    $filesErrors++;
                    print_r($errors);
                }
            }
    
            if ($filesErrors == 0){
                echo 'Success';
            }
        }
    ?>
    
    
    <form action="" method="POST" enctype="multipart/form-data">
        <input type="file" name="files[]"> <br/>
        <input type="file" name="files[]"> <br/>
        <input type="file" name="files[]"> <br/>
        <input type="file" name="files[]"> <br/>
        <input type="file" name="files[]" > <br/><br/>
        <input type="submit"/>
    </form>
    
    0 讨论(0)
提交回复
热议问题