Image upload not working in codeignitor

后端 未结 3 1252
萌比男神i
萌比男神i 2021-01-27 07:41

I create image upload code. this create directory first and then upload images to it.

In form I upload 3 images.

My Code is:

$dir_path = \'asset         


        
相关标签:
3条回答
  • 2021-01-27 08:21

    Read manual from here CI image upload.

    In codignator we use upload library to upload image .

    you pass youe parameter according to your requirment

               $config['upload_path'] = 'assets/images/product_images/'.$model."/";
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size'] = '100';
                $config['max_width']  = '1024';
                $config['max_height']  = '768';
    
                $this->load->library('upload', $config);
    
                if ( ! $this->upload->do_upload())
                {
                    $error = array('error' => $this->upload->display_errors());
    
                    $this->load->view('Your View', $error);
                }
                else
                {
                    $data = array('upload_data' => $this->upload->data());
    
                    $this->load->view('Your View', $data);
                    }
    
    0 讨论(0)
  • 2021-01-27 08:29

    When you upload a file with PHP it gets stored into a temporary folder. You can access this file in your script with $_FILES, but it is still in your temporary folder it will be deleted upon next request.

    To keep your uploaded File, you need to move it to the desired location.

    The function for this is called move_uploaded_file (API: http://php.net/manual/en/function.move-uploaded-file.php)

    bool move_uploaded_file ( string $filename , string $destination )
    

    In your case it would result in something like:

    $dir_path = 'assets/images/product_images/'.$model;
    mkdir($dir_path, 0777);
    
    $i = 1 ;
    
        foreach ($image as $new_image)
            {
                $dir_path_up = 'assets/images/product_images/'.$model."/";
                $filename = $_FILES["$new_image"]["name"];
                $tmp_name = $_FILES["$new_image"]["tmp_name"]
                $image_name  = $dir_path_up .$filename . $i. ".jpg";
                move_uploaded_file($tmp_name, $image_name);
                    echo $image_name;
    
                    $i++;
            }
            die();
    
    0 讨论(0)
  • 2021-01-27 08:29

    This work fine with multiple image upload

    <?php
        $j = 0;     // Variable for indexing uploaded image.
        $target_path = 'assets/images/product_images/' . $last_id . '/';     // Declaring Path for uploaded images.
        for ( $i = 0; $i < count($_FILES['image']['name']); $i++ )
        {
            // Loop to get individual element from the array
            $validextensions = array("jpeg", "jpg", "png");      // Extensions which are allowed.
            $ext = explode('.', basename($_FILES['image']['name'][$i]));   // Explode file name from dot(.)
            $file_extension = end($ext); // Store extensions in the variable.
            $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];     // Set the target path with a new name of image.
            $j = $j + 1;      // Increment the number of uploaded images according to the files in array.
            if ( ($_FILES["image"]["size"][$i] < 100000000)     // Approx. 100kb files can be uploaded.
                && in_array($file_extension, $validextensions)
            )
            {
                move_uploaded_file($_FILES['image']['tmp_name'][$i], $target_path);
            }
            else
            {
    
            }
        }
    
    0 讨论(0)
提交回复
热议问题