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:
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)
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)