简体   繁体   中英

Codeigniter Upload Image Choice

I have a form including different inputs and file upload input. I want the users if they want to upload images then upload, but if they don't want to upload. Don't give an error.

if($_POST){         
    $config['upload_path']          = 'images/tmp';
    $config['allowed_types']        = 'gif|jpg|png';
    $config['max_size']             = 2048;
    $config['min_width']            = 480;
    $config['min_height']           = 360;

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('userfile')) {
        $error = array('error' => $this->upload->display_errors());
        //Sending this $error to view and if a user didnt upload image and just filled
        //the other inputs it shows error. but i dont want that.
    } else { }
} else {
    redirect(site_url());
}

You are on right track. Just delete or comment this line

$error = array('error' => $this->upload->display_errors());

You might be send your $error to view file like below:

$this->load->view('upload_form', $error);

So Don't send your value to view file. Just call your view when image successfully uploaded below:

if ( ! $this->upload->do_upload('userfile') )
            {

                // $error = array('error' => $this->upload->display_errors());
                /*Delete or comment this line. Do your other stuff here if image not uploaded.*/

            }else{
                   $data = array('upload_data' => $this->upload->data());
                   $this->load->view('upload_success', $data);
                   /* This is example. You can do anything on successfully image upload.*/
            }

You can refer codeigniter manual https://www.codeigniter.com/userguide3/libraries/file_uploading.html

    $config['upload_path']          = 'images/tmp';
    $config['allowed_types']        = 'gif|jpg|png';
    $config['max_size']             = 2048;
    $config['min_width']            = 480;
    $config['min_height']           = 360;    
    $this->load->library('upload', $config);
       //$rand_str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
         //   $filename=md5(str_shuffle($rand_str.mt_rand()));
        //  $config['file_name']=$filename;

            $this->upload->initialize($config);

            if ( $this->upload->do_upload('userfile'))
            {
                    //$data = array('upload_data' => $this->upload->data());
                     //  $data["filename"]=$filename;
                    //  $data["ad_id"]=$lid;

                    // $data["filename"]=$rand_name;
                  //  $this->Ads_model->insert_image($data);



            }

I solved my problem changing the Upload class to give no error. I commented the lines including "no selected files".

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM