FIle upload from a rest client to a rest server FIle upload from a rest client to a rest server codeigniter codeigniter

FIle upload from a rest client to a rest server


Simple Rest Post service to upload & store a file from any Rest client

public function product_post(){    $uploaddir = './uploads/products/';    $file_name = underscore($_FILES['file']['name']);    $uploadfile = $uploaddir.$file_name;    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {        $dataDB['status'] = 'success';               $dataDB['filename'] = $file_name;     } else {        $dataDB['status'] =  'failure';            }     $this->response($dataDB, 200);}


After searched for more than 1 days, finally this is what worked for me

public function upload_post()    {      $config['upload_path'] = './uploads/';      $config['allowed_types'] = '*';      $this->load->library('upload');      $this->upload->initialize($config);      if ( ! $this->upload->do_upload('file'))      {        $error = array('error' => $this->upload->display_errors());         print_r($error);      //  $this->load->view('upload_form', $error);      }      else      {        $data = array('upload_data' => $this->upload->data());        print_r($data);      //  $this->load->view('upload_success', $data);      }    }


As Amit has suggested, you can send the contents of a file file_get_contents('foo.jpg') or you could do something more true to the spec and do something like:

POST /images

Content-Type: image/jpeg

Then for the body you just set the contents of the image (or whatever type of file you're firing off).

You can then pick that up in your PHP with:

file_get_contents('php://input');

That will have the contents of your image, so you can save it wherever.