Bonjour à tous.


Un petit souci qui ne devrai être trop gros je pense au final.

Envoyer une liste de fichier sélectionné, à travers javascript, à Php.

J'aimerai Réceptionner le type "FormData" de javascript, envoyer par XmlHttpRequest.

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
var data = new FormData();
	for(var i=0, len=fileAll.length; i<len; i++) {
		data.append("filesToUpload", fileAll[i]);	
	}
	var xhr = getXMLHttpRequest(); //Créé xhr si possible
	xhr.open("POST", "{{ path('updatePicksSendF') }}", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	//xhr.send("fileA="+fileA+"&nameF="+nameF+"&data="+data);
	xhr.send(data);
	xhr.onload = function() {
        alert('Upload terminé !');
};

Où fileAll est la liste des fichiers ajoutés.

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="file" id="fileInput" name="fichier[]" multiple accept="image/*">

Code javascript : 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
var fileAll = new Array();
document.getElementById('fileInput').addEventListener( 'change', getFiles, false );
function getFiles(evt)
{
    var files = evt.target.files;
 
    // On parcourt la liste des fichiers sélectionnées
    for( var i = 0; i < files.length; i++ )
    {
    	imgType = files[i].name.split('.');
        imgType = imgType[imgType.length - 1].toLowerCase(); // On utilise toLowerCase() pour éviter les extensions en majuscules
 
        if(allowedTypes.indexOf(imgType) != -1) 
        {
 
        fileAll.push(files[i]);
 
//etc...

La réception coté PHP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
updatePicksSendFAction ()
{
if(!empty($_POST))
{
	// On verifie si le champ est rempli
	//$objILOC = json_decode(stripslashes($_POST['fileA']));
	$objILOC = $_FILES['filesToUpload'];
	for ($i=0; $i<count($objILOC); $i++)
	{
		$logger->info('UpdateAccountController - updatePicksSendF files : '.$objILOC[$i]['name']);
	}
// etc..
Erreur :
updatePicksSendF : exception 'ErrorException' with message 'Notice: Undefined index: filesToUpload
Je reçois bien quelque chose, en autre une envoi POST, mais la variable/objet "filesToUplaod" n'est pas reconnu.

Qu'est ce que j'ai oublié ?

Merci