Call to a member function getClientOriginalName() on a non-object

49,369

Solution 1

You miss enctype attribute in your form markup.

Either do this

<form role="form" action="{{URL::to('user/poster/upload_process')}}" method="post" enctype="multipart/form-data">
...
</form>

or this...

{{ Form::open(array('url' => 'user/poster/upload_process', 'files' => true, 'method' => 'post')) }}
// ...
{{ Form::close() }}

Solution 2

This is just because you forget to write enctype="multipart/form-data" in <form> tag.

This error happen just when you forget this:

<form class="form form-horizontal" method="post" action="{{ route('articles.store') }}" enctype="multipart/form-data">

Solution 3

These code are right, but you didn't check values of returns of Input::file('image'). I think returns value may be is not a correct object or your class Input does not have a public function name is getClientOriginalName.

Code:

$file = Input::file('image');
var_dump($file); // if return a correct object. you will check your class Input.

Good luck.

Share:
49,369
Spadaboyz
Author by

Spadaboyz

Updated on July 31, 2022

Comments

  • Spadaboyz
    Spadaboyz over 1 year

    I'm trying to make an image uploader, but it always give me this error

    Call to a member function getClientOriginalName() on a non-object
    

    here is my code controller code

    public function uploadImageProcess(){
    
        $destinatonPath = '';
        $filename = '';
    
        $file = Input::file('image');
        $destinationPath = public_path().'/assets/images/';
        $filename = str_random(6).'_'.$file->getClientOriginalName();
        $uploadSuccess = $file->move($destinationPath, $filename);
    
        if(Input::hasFile('image')){
            $images = new Images;
    
            $images->title = Input::get('title');
            $images->path = '/assets/images/' . $filename;
            $image->user_id = Auth::user()->id;
    
            Session::flash('success_insert','<strong>Upload success</strong>');
            return Redirect::to('user/dashboard');
        }
    }
    

    and here is the upload form

    <form role="form" action="{{URL::to('user/poster/upload_process')}}" method="post">
        <label>Judul Poster</label>
        <input class="form-control" type="text" name="title">
        <label>Poster</label>
        <input class="" type="file" name="image"><br/>
        <input class="btn btn-primary" type="submit" >
    </form>
    

    what's wrong with my code?

  • Spadaboyz
    Spadaboyz over 10 years
    thanks, the result is NULL so, how i can get the input file correctly?
  • ilkerkaran
    ilkerkaran over 5 years
    You may want to add an explanation to your code snippet