У меня проблема в моем приложении 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'
.