Bonjour,

J'aimerais avoir votre avis sur un problème qui m'a pris la tête toute la journée et que je n'ai finalement pas réussi à résoudre. Je souhaiterais envoyer une image en ajax. J'ai trouvé plusieurs thread avec cette même question mais je n'ai rien pu en tirer d'où ma requête.

Voici ce que je fais :

Mon formulaire html:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<form id="form" class="form" enctype="multipart/form-data" accept-charset="UTF-8" action="http://localhost/test/test.php" method="POST">
<input type="file" name="avatar" />
<button type="submit">Valider</button>
</form>

Mon code javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('#form').submit(function(event){
	event.preventDefault();
	var data = new FormData();
	data.append('avatar', $('[name="avatar"]')[0].files);
	$.ajax({
		url: 'http://localhost/test/test.php',
		data: data,
		contentType: false,
		processData: false,
		type: 'POST',
		success: function(result){
			console.log(result);
		},
		error: function(xhr, status){
			console.log(xhr);
		}
	});
});
Et je n'arrive à rien récupérer côté php. La variable $_FILES est complètement vide. Ai-je oublié quelque chose ? Merci d'avance.