J'ai un problème dans mon application laravel ajax,
Je ne peux pas télécharger des images/fichiers via ajax POST.
voici mon code.
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*/
Modèle de lame ...
<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>
Manette ..
public function catadd(){
if (Input::hasFile('logo'))
{
return "file present";
}
else{
return "file not present";
}
}
Route ..
Route::post('add-catagory',['as'=>'catagory_add','uses'=>'MastersController@catadd']);
Quelle est l'erreur dans mon code ???
Je n'arrive pas à obtenir les informations sur le fichier dans le contrôleur laravel.
Comment puis-je résoudre ce problème ...?
Deux choses à changer:
Modifiez votre fichier js à partir de:
data:{
logo:new FormData($("#upload_form")[0]),
},
À:
data:new FormData($("#upload_form")[0]),
Parce que vous souhaitez envoyer le formulaire complet.
Dans votre html:
Ajouter un nom au champ de saisie de votre fichier
<input type="file" class="form-control" id="catagry_logo">
À:
<input type="file" name="logo" class="form-control" id="catagry_logo">
cela ne fonctionne pas pour moi à cause de dataType:'json'
. Si quelqu'un a une erreur, supprimez simplement dataType:'json'
.
Vérifiez dans votre contrôleur ce que vous obtenez lorsque vous postez:
echo dd(Input::all());
Vérifier les fichiers objet en php. Ceci en PHP:
$_FILES
Request::file("logo");
Oui, vous ne publiez pas vraiment de données? Le formulaire est-il vraiment posté?