sql >> Databasteknik >  >> RDS >> Mysql

Flera bilduppladdningsproblem

För det första felet, är felmatrisen utanför foreah så att du inte rensar felet för varje fil, och frågan att infoga är utanför if som kontrollerar fel så eccuteras alltid

För det andra felet är det samma, frågan exekveras alltid du måste kontrollera om filen är uppladdad.

<?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>



  1. Ändra stora MySQL InnoDB-tabeller

  2. MySQL Alter Table Kolumn

  3. Infoga kryssrutadata till mysql

  4. Få maximalt utan att gruppera