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.
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.
<input type="file" id="fileInput" name="fichier[]" multiple accept="image/*">
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
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
Partager