0

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?

6
  • Because you have given imageupload[] name means array in your input field Commented Mar 29, 2017 at 8:43
  • Are you working on multiple file uploads? Commented Mar 29, 2017 at 8:48
  • Yes I am working for multiple file upload Commented Mar 29, 2017 at 8:52
  • I think you should use in controller imageupload[0] or somethinig else. Without seeing your full code can't suggest solution properly. Commented Mar 29, 2017 at 8:53
  • Than how can I upload multiple file? Commented Mar 29, 2017 at 8:54

2 Answers 2

1

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 


        }
        }
Sign up to request clarification or add additional context in comments.

Comments

0

Probably your input name should be without brackets:

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

2 Comments

If you are guessing any answer you should use comment.
How can I upload multiple file at same time?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.