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 :

Evenement lors d'un téléchargement de fichier


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Par défaut Evenement lors d'un téléchargement de fichier
    Bonjour à tous,

    Sur mon site, j'ai des liens de téléchargements et j'aimerais récupérer l'évènement lorsqu'il y a un téléchargement en cours ou lorsque le téléchargement de la personne est terminé peut importe, pour enregistrer dans ma base de données le nombre de téléchargements des personnes.

    Est-ce qu'il y aurait un évènement JavaScript qui pourrait faire cela ?

    Merci d'avance.

    John.

  2. #2
    Membre éclairé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Par défaut
    Bon j'ai trouvé la solution et il n'y aucuns liens avec JavaScript, tout se fait en PHP.

    Il suffit de ne pas mettre directement vos fichiers dans le href. Il faut feinter en mettant dans votre lien de téléchargement une autre destination vers un fichier php, par exemple le serveur, puis d'envoyer en get, le lien du fichier à télécharger :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="serveur.php?file=' . $fichier . '">'

    Bon moi j'ai fais un echo parce que je suis dans une page php, donc à adapter si vous le faite en HTML... Vous pouvez aussi envoyer plusieurs données dans la variable file en faisant comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="serveur.php?file=' . $fichier . '&idtab=' . $idtab . '">'

    Ensuite sur la page serveur.php, il suffit de tester si la variable file existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset ( $_GET ['file'] )) {
    Et à partir de là, vous récupérez le lien du fichier et d'autres données si besoin :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $name = $_GET ['file'];

    Il ne reste plus qu'à faire des requêtes SQL pour insérer dans votre base données le nombre de téléchargements. Faites un update du champ si il existe une ligne dans votre base de données, sinon vous faites un insert et par défaut vous mettez 1. Il est possible de faire en SQL, pour incrémenter un champ :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE telechargement SET champ=champ+1

    A la fin de toutes ces requêtes, vous pouvez enfin faire une redirection vers votre téléchargement, pour pouvoir télécharger le fichier.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header ( "Location: $name" );

  3. #3
    Invité
    Invité(e)
    Par défaut
    lorsqu'il y a un téléchargement en cours ou lorsque le téléchargement de la personne est terminé peut importe
    ta solution ne marche pas, tu ne vas jamais décrémenter le nombre de téléchargements en cours...
    Tu as le nombre de téléchargements demandés, mais tu sais jamais quand ils terminent.

    Ya au moins un moyen.
    Par exemple, côté php, tu peux utiliser readfile.

    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
    <?php
    $downloadStarted++;//we asked a download
    $file = 'monkey.gif';
     
    if (file_exists($file)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        $downloadStarted--;//we ended the download
        exit;
    }
    ?>
    Il reste la question de savoir ce qu'il se passe si l'utilisateur interromp le download...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    et juste en passant par une variable de session ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Invité
    Invité(e)
    Par défaut
    et juste en passant par une variable de session
    peux-tu developper?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben au lieu de stocker dans une table, ne serait il pas plus simple de tenir un etat dans une variable de session ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/10/2013, 12h01
  2. Lag lors d'un téléchargement de fichier local
    Par Johngtrs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/06/2012, 20h20
  3. [XL-2003] Evenement lors de l'ouverture d'un fichier Excel
    Par RussellD dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2010, 17h20
  4. Réponses: 9
    Dernier message: 15/04/2009, 17h32
  5. Pb nom du fichier lors d'un téléchargement forcé
    Par wolfe dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2007, 10h49

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