11484 sujets

JavaScript, DOM et API Web HTML5

Lorsque l'on effectue un traitement des événement javascript liés au drag'n drop:

exemple de séquence:
1- drop d'un fichier image sur une zone maZone dans un document HTML
2- écoute de l'événement ondrop ( maZone.ondrop = function(e) { traitement } )
3- on récupère un objet e.dataTransfer.files
4- dans un nouveau script on peut se servir de cet objet pour créer un objet formData
exemple:

	var myData = new FormData;
	var i;
        var obj =e.dataTransfer.files;
	for (i=0; i<obj.length; i++) {
		myData.append('files[]', obj[i]);  
	}
       // files[] va représenter l'équivalent d'un attribut name="files[]" dans un champ input type="file" d'un formulaire classique

5- on envoie cet objet myData vers un script PHP qui va récupérer les valeurs au format du tableau $_FILES

après s'en suit le traitement classique en PHP et on utilise la fonction PHP move_uploaded_file() etc ..
Le fichier temporaire de transfert est stocké dans $_FILES['files']['tmp_name']

Bon alors ça c'est le schéma classique, ça fonctionne..
Maintenant, 2 questions:

A/ pourquoi je n'arrive pas à voir le fichier temporaire avec mon serveur local Xamp alors qu'un var_dump($_FILES) me démontre qu'il existe avec une valeur telle que "C:\xampp\tmp\phpFA18.tmp" (je fais le contrôle avant que la fonction move_uploaded_file() intervienne, bien sur)

B/ au niveau de l'étape 3 lorsque l'objet dataTransfer est créé, où est stocké le fichier physiquement? c'est à dire que si je ne faisait pas intervenir PHP comment ferais je pour le stocker quelque part?

Merci, j'espère que j'ai été assez clair dans l'énoncé..
Modifié par lionel_css3 (02 Feb 2018 - 21:16)