pawan.khade's avatar

How to upload image using laravel 5

i want to upload image in laravel application following is my code

view: {!! Form::open(['url'=> '/submitphoto', 'method'=>'POST', 'id'=>'submitphoto', 'enctype' => 'multipart/form-data','files' => true]) !!}

<div class="form-group">
    {!! Form::file('files', null,['id'=>'img_upload']) !!}
</div>
<div class="form-group">
    {{ Form::button('Upload Image', array('class' => 'btn btn-success','id'=>'imgupload','name'=>'imgupload')) }}
</div>
<div id="imgoutput">

</div>
{!! Form::close() !!}

Ajax:

$('#imgupload').on('click',function(e){ var data= $('#submitphoto').serialize(); var url= $('#submitphoto').attr('action'); var to = url.lastIndexOf('/'); to = to == -1 ? url.length : to + 1; url = url.substring(0, to); url=url+'submitphoto'; var post= $('#submitphoto').attr('method'); $.ajax({ type:post, url:url, data:data, success:function(data){ $('#imgoutput').html(data.toString()); } })

})

Route: Route::get('/update_profile', 'RoutController@update_profile'); Route::post('/submitphoto', 'RoutController@submitphoto');

Controller:

public function submitphoto(Request $request) { $input = $request->file('files'); return var_dump($input); }

Here $input is showing me null

Please help me out.

0 likes
8 replies
pawan.khade's avatar

I have used everything according to your link but still it is not working hasFile method return null

pawan.khade's avatar

Cant this be done using normal file upload and jquery?

MaverickChan's avatar

yes , try google or stackoverflow , lots of examples , and very easy to follow.

but i still suggest you use dropzone.js , easy to use.

pawan.khade's avatar

Now I am using FormData.js and I am getting hasFile as true. but it is showing following output for

$input = $request->all('files'); return var_dump($input);

array (size=3) '_token' => string 'MaW4f1ykzWv2lDA9QdKbcr4ZK613bKM0wCPfxJHt' (length=40) 'fileuploader-list-files' => string '["0:/334651-hd-wallpaper.jpg"]' (length=30) 'files' => array (size=1) 0 => object(Illuminate\Http\UploadedFile)[176] private 'test' (Symfony\Component\HttpFoundation\File\UploadedFile) => boolean false private 'originalName' (Symfony\Component\HttpFoundation\File\UploadedFile) => string '334651-hd-wallpaper.jpg' (length=23) private 'mimeType' (Symfony\Component\HttpFoundation\File\UploadedFile) => string 'image/jpeg' (length=10) private 'size' (Symfony\Component\HttpFoundation\File\UploadedFile) => int 498608 private 'error' (Symfony\Component\HttpFoundation\File\UploadedFile) => int 0

but whenever i use following code

$input['files'] = time().'.'.$request->image->getClientOriginalExtension();

it shows error for getClientOriginalExtension() function How to solve this problem?

bunnypro's avatar

try this

$request->file(<name>)->getClientOriginalExtension();

Please or to participate in this conversation.