Laravel 5 Ajax Файл / Загрузка изображения

У меня проблема в моем приложении larvel ajax,

Я не могу загружать изображения / файлы через ajax POST.

вот мой код.

Ajax ..

/*Add new catagory Event*/ $(".addbtn").click(function(){ $.ajax({ url:'add-catagory', data:{ logo:new FormData($("#upload_form")[0]), }, dataType:'json', async:false, type:'post', processData: false, contentType: false, success:function(response){ console.log(response); }, }); }); /*Add new catagory Event*/ 

Шаблон клинка …

  <form enctype="multipart/form-data" id="upload_form" role="form" method="POST" action="" > <div class="form-group"> <label for="catagry_name">Name</label> <input type="hidden" name="_token" value="{{ csrf_token()}}"> <input type="text" class="form-control" id="catagry_name" placeholder="Name"> <p class="invalid">Enter Catagory Name.</p> </div> <div class="form-group"> <label for="catagry_name">Logo</label> <input type="file" class="form-control" id="catagry_logo"> <p class="invalid">Enter Catagory Logo.</p> </div> </form> </div> <div class="modelFootr"> <button type="button" class="addbtn">Add</button> <button type="button" class="cnclbtn">Reset</button> </div> </div> 

Контроллер ..

 public function catadd(){ if (Input::hasFile('logo')) { return "file present"; } else{ return "file not present"; } } 

Маршрут ..

  Route::post('add-catagory',['as'=>'catagory_add','uses'=>'MastersController@catadd']); 

Какая ошибка в моем коде ???

Я не могу получить информацию о файле в контроллере laravel.

Как я могу решить эту проблему …?

Две вещи, которые нужно изменить:

Измените файл js:

  data:{ logo:new FormData($("#upload_form")[0]), }, 

Для того, чтобы:

  data:new FormData($("#upload_form")[0]), 

Потому что вы хотите отправить всю форму.

В вашем html:

Добавить имя в поле ввода файла

 <input type="file" class="form-control" id="catagry_logo"> 

Для того, чтобы:

 <input type="file" name="logo" class="form-control" id="catagry_logo"> 

Проверьте свой контроллер, что вы получаете, когда отправляете сообщение:

 echo dd(Input::all()); 

Проверка файлов в php. Это в PHP:

 $_FILES Request::file("logo"); 

Да, вы действительно не публикуете какие-либо данные? Форма действительно публикуется?

это не работает для меня из-за dataType:'json' . Если кто-то получает ошибку, просто удалите dataType:'json' .