2016-09-18 82 views
0

当我尝试上传我的文件与ajax时,$文件是空的。Laravel - Ajax图像上传 - 文件为空

我试过:

$ file = Input :: file('image'); $ file = $ request-> file('image');

的jQuery:

$(document).on('submit', '#update_form', function(e){ 
     e.preventDefault(e); 
     $.ajax({ 
      type: "POST", 
      url: '{{route('admin/users/update')}}', 
      data: $(this).serialize(), 
      dataType: 'json', 
      success: function (data) { 
       $('.error').fadeOut(); 
       success(data); 
       load_data('{{route('admin/users/edit')}}', '{{ $user->id }}', '{{ $user->part }}'); 
      }, 
      error: function (data) { 
       $('.success').fadeOut(); 
       errors(data); 
      } 
     }) 
    }); 

控制器:

public function updateUser(Request $request){ 

    //$file = Input::file('image'); 
    $file= $request->file('image'); 

    return \Response::json($file); 

} 

路线:

Route::post('admin/users/update', ['as' => 'admin/users/update', 'uses' => 'admin\[email protected]']); 

形式:

{!! Form::model($user, ['id' => 'update_form', 'files' => true]) !!} 

<div class="col-md-12"> 

    <div class="form-group"> 
     {{ Form::label(trans('User image')) }} 
     {!! Form::file('image', null,['class' => 'form-control', 'placeholder' => trans('Image')]) !!} 
    </div> 

    {{ Form::hidden('id') }} 
    {{ Form::hidden('part', app('request')->input('part')) }} 

    {!! Form::submit(trans('Save changes'), ['class' => 'pull-right btn btn-success submit', 'id' => 'submit' ]) !!} 

</div> 

{!! Form::close() !!} 

Repsonse为空,或者:{}

响应图像:

https://gyazo.com/04e431f16237dfada40c864df96ad412

谢谢!

+0

你需要一个jQuery插件,通过AJAX上传文件(不是你自己实现更容易),退房https://blueimp.github.io/jQuery-File-上传/ –

回答

0

参数是您的服务器方法的参数

FormData fd =new FormData(); 
fd.append('param',$('input[type=file]').files[0]); 
+0

感谢您的回复,但我不明白它害怕。 – RK4002