IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

upload drag and drop : fichiers non uploadés


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut upload drag and drop : fichiers non uploadés
    Bonjour,
    pour mon rattrapage de projet de 1er année je dois faire un drag and drop pour uploader des fichier.
    j'y suis presque, mais cela bloque pour l'upload et sa dépasse mes compétences.

    le code javascript :
    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    jQuery(document).ready(function(){
     
        $.fn.ZoneDeDrop = function(item) {
     
                $(this).bind({
                    // un fichier rentre dans la fenêtre
                    dragenter : function(data) {
                        // annuler evenement par defaut
                        data.preventDefault();
                        // console.log('dragenter');
                    },
                    dragover : function(data) {
                        // annuler evenement par defaut
                        data.preventDefault();
                        $(this).addClass('hover');
                        // console.log('dragover');
                    },
                    dragleave : function(data) {
                        // annuler evenement par defaut
                        data.preventDefault();
                        $(this).removeClass('hover');
                        // console.log('dragleave');
                    }
                    ,
                    drop : function(data) {
                        // annuler evenement par defaut
                        data.preventDefault();
     
                        var files = data.target.files;
                        if (!files || files.length === 0)
                        files = (data.dataTransfer ? data.dataTransfer.files : data.originalEvent.dataTransfer.files);
     
                        var xhr = new XMLHttpRequest();
                        xhr.open('POST',"../../assets/functions/dragdrop.php",true)
                        // xhr.setRequestHeader('content-type', 'multipart/form-data');
                        xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
                        xhr.setRequestHeader('x-file-name', files[0].name);
                        xhr.setRequestHeader('x-file-size', files[0].size);
                        xhr.setRequestHeader('x-file-type', files[0].type);
                        xhr.send(files)
     
                    }
                });
        }
    });
    puis la fonction php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ?php
     
    $getHeader = getallheaders();
     
    // Ouvre pour lire un contenu existant
    $source = file_get_contents('php://input');
     
    // Écrit le résultat dans le fichier
    file_put_contents('/'.$getHeader['x-file-name'],$source);

    je récupère bien toutes les informations, mais rien ne s'upload :
    Nom : capture.jpg
Affichages : 125
Taille : 137,2 Ko

    merci d'avance

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut


    Mais que ferais-tu s’il y avait plusieurs fichiers ? Au minimum, je pense que c’est une bonne idée de faire un retour « seul le fichier [xxx] a été traité » ou quelque chose comme ça.

    Sinon, FormData aurait pu t’aider, il gère tout seul les détails fastidieux qui vont avec le type "multipart/form-data".

    D’autre part, deux petites remarques :
    • il me semble qu’il n’y a pas besoin d’annuler l’évènement dragleave ;
    • il faut retirer la classe "hover" également lors de l’évènement drop.

Discussions similaires

  1. Erreur upload fichier drag and drop
    Par Asdorve dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2018, 14h46
  2. Upload drag and drop jQuery - php
    Par mOscar007 dans le forum jQuery
    Réponses: 13
    Dernier message: 27/05/2015, 19h17
  3. [AIR] Drag and drop fichier -> explorateur
    Par cocacola0589 dans le forum Flex
    Réponses: 1
    Dernier message: 07/08/2011, 14h19
  4. Uploader multi-fichier Drag and Drop (Google Docs)
    Par LoicRossi dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 29/06/2011, 15h32
  5. Upload Drag and Drop
    Par omman95 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 24/01/2011, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo