Rushabh Shah
Rushabh Shah

Reputation: 515

Codeigniter file upload displaying error

Controller code

        $config['upload_path']          = './uploads/'.$random;
        $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('imageupload'))
        {
            $error = array('error' => $this->upload->display_errors());
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
        }
        print_r($data);

HTML code:

<form role="form" enctype="multipart/form-data" accept-charset="utf-8" name="formname" id="formname"  method="post" action="http://www.example.com/Property/post">
    <input type="file" class="default" id="imageupload1" name="imageupload[]">
</form>

Whenever I am uploading file it displaying warning is_uploaded_file() expects parameter 1 to be string, array given. How can I resolve it?

Upvotes: 0

Views: 1233

Answers (2)

Parvez Ahmed
Parvez Ahmed

Reputation: 650

try this

      //place this code in your function for multiple image upload
   $data = array();
    if(!empty($_FILES['imageupload']['name']))
    {
        $filesCount = count($_FILES['imageupload']['name']);
          for($i = 0; $i < $filesCount; $i++){
            $_FILES['imageupload']['name'] = $_FILES['imageupload']['name'][$i];
            $_FILES['imageupload']['type'] = $_FILES['imageupload']['type'][$i];
            $_FILES['imageupload']['tmp_name'] = $_FILES['imageupload']['tmp_name'][$i];
            $_FILES['imageupload']['error'] = $_FILES['imageupload']['error'][$i];
            $_FILES['imageupload']['size'] = $_FILES['imageupload']['size'][$i];

            $uploadPath = 'uploads/';
            $config['upload_path'] = $uploadPath;
            $config['allowed_types'] = 'gif|jpg|png';

            $this->load->library('upload', $config);
            $this->upload->initialize($config);
            if($this->upload->do_upload('imageupload')){
                $fileData = $this->upload->data();
                $uploadData[$i]['file_name'] = $fileData['file_name'];
                $uploadData[$i]['created'] = date("Y-m-d H:i:s");
                $uploadData[$i]['modified'] = date("Y-m-d H:i:s");
            }
        }

        if(!empty($uploadData)){
            //Insert file  into the database using your model 


        }
        }

Upvotes: 1

Mateusz Wojtuła
Mateusz Wojtuła

Reputation: 229

Probably your input name should be without brackets:

<input type="file" class="default" id="imageupload1" name="imageupload">

Upvotes: 0

Related Questions