Envoyer un objet FileList avec ajax

Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 9 sept. 2014 à 21:09
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 11 sept. 2014 à 20:38
Bonjour,
Est il possible d'envoyer un objet FileList avec ajax à php?
J'ai bien penser à faire un JSON.stringify, mais ça ne fonctionne pas car tout mes objet file sont perdu.
Voici ce que j'obtiens coté php avec un print_r:

<pre>stdClass Object
(
[0] => stdClass Object
(
)

[1] => stdClass Object
(
)

[2] => stdClass Object
(
)

[3] => stdClass Object
(
)

)
</pre>

alors que ce que je voudrais, c'est ça:

<pre>Array
(
[0] =>
(
[name] => WP_20140907_001.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpa6OcD8
[error] => 0
[size] => 2107791
)

[1] =>
(
[name] => WP_20140907_001.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpa6OcD8
[error] => 0
[size] => 2107791
)

[2] =>
(
[name] => WP_20140907_001.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpa6OcD8
[error] => 0
[size] => 2107791
)

[3] =>
(
[name] => WP_20140907_001.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpa6OcD8
[error] => 0
[size] => 2107791
)
)
</pre>

Il y a t-il une solution, ou suis je obliger de passer mes objet file 1 par 1 dans ma requête ajax?

Merci d'avance pour votre aide
Bien cordialement...

2 réponses

La solution très utilisée est de faire appel à formData

var data = new FormData();

var fileList = $("input[type=file]").prop("files");
var file = fileList[0]
if(file.size>3200000){
alert("Le fichier que vous tentez d'envoyer dépasse 3mb.")
return false;
}else{
data.append("fichier1", file, file.name);
}

Si vous utiliser jquery. Sinon à adapter en js pur.
Il suffira d'envoyer l'objet data et le récuperer en PHP avec la superGlobal $_FILES['fichier1'];
0
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
11 sept. 2014 à 20:38
Bonjour et merci pour votre réponse.
Je ne connais pas jquery, mais me il semble que votre code n'envoie qu'un seul fichier à la fois, or, ce que j'aimerais, c'est envoyer tout le fileList en une seul fois.
Est ce possible?
0