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

Langage PHP Discussion :

detecter la fin d'un forcedownlaod


Sujet :

Langage PHP

  1. #1
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut detecter la fin d'un forcedownlaod
    Bonjour,

    Je suis malheureusement quasi sûr de la reponse

    Peut on d'une manière ou d'une autre tester automatiquement si un forcedownload s'est bien terminé ?

    A part une boucle coté client qui irait tester le MD à la fin du téléchargement, et encore faut il pouvoir detecter la fin de flux , et connaitre le nom du fichier sachant que la boite de dialogue enregistrer sous laisse le libre nommage au client ...

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    regarde du coté de connection_status

  3. #3
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Oui enfin sauf que la c'est coté client que l'appli doit tester

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    quel est l’intérêt ? la fenêtre de téléchargement se ferme quand il est finit
    ton cas c'est si la connexion est coupé ?

  5. #5
    Membre confirmé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Points : 475
    Points
    475
    Par défaut
    Tu peux vérifier le nombre d'octets dans le journal de serveur Web pour voir si le
    ensemble du dossier a été transféré.

    En PHP, tu peux aussi le faire en verifiant connection_aborted () après avoir
    envoyer le fichier par exemple.:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ignore_user_abort(true); // Don't end if the connection breaks
     
    if (readfile($path) !== false && !connection_aborted()) {
    // Success!
    }
    Un autre exemple

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?
     
    // Sample usage
     
    function sendTest()
    {
    $res = sendFile('application.exe', 'application/octet-stream');
     
    if ($res['status']) {
    // Download succeeded
    } else {
    // Download failed
    }
     
    @saveDownloadStatus($res);
    }
     
    // The sendFile function streams the file and checks if the
    // connection was aborted.
     
    function sendFile($path, $contentType = 'application/octet-stream')
    {
    ignore_user_abort(true);
     
    header('Content-Transfer-Encoding: binary');
    header('Content-Disposition: attachment; filename="' .
    basename($path) . "\";");
    header("Content-Type: $contentType");
     
    $res = array(
    'status' =false,
    'errors' =array(),
    'readfileStatus' =null,
    'aborted' =false
    );
     
    $res['readfileStatus'] = readfile($path);
    if ($res['readfileStatus'] === false) {
    $res['errors'][] = 'readfile failed.';
    $res['status'] = false;
    }
     
    if (connection_aborted()) {
    $res['errors'][] = 'Connection aborted.';
    $res['aborted'] = true;
    $res['status'] = false;
    }
     
    return $res;
    }
     
    // Save the status of the download to some place
     
    function saveDownloadStatus($res)
    {
    $ok = false;
    $fh = fopen('download-status-' . $_SERVER['REMOTE_ADDR'] . '-' .
    date('Ymd_His'), 'w');
    if ($fh) {
    $ok = true;
    if (!fwrite($fh, var_export($res, true))) {
    $ok = false;
    }
    if (!fclose($fh)) {
    $ok = false;
    }
    }
    return $ok;
    }
    à tester...

    Source http://bytes.com/topic/php/answers/5...eted-cancelled

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 63
    Points
    63
    Par défaut
    Si l'envoi du fichier passe par un script PHP, je pense qu'il peut savoir lorsque c'est fini (voir ci-dessus).
    Donc côté client, via un 'tit ajax, tu peux récuperer cette même info.

    Non ?

  7. #7
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Merci pour ces réponses, mais en fait je ne pense pas qeu ce soit du coté de php que je doive chercher en fait
    C'est une appli coté client ...
    Donc il me faudrait instaurer un dialogue
    recupérer le md5
    recuperer le fichier
    intercepter la fin du downlaod
    tester le fichier reçu par rapport au md5

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    tu peux pas faire ça, c'est a l'utilisateur de la faire, si tu veux eviter ce genre de chose fais du range request, si t'as pas envie de t’embêter utilise X-SendFile

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    J'avoue ne pas avoir saisi le principe.
    Existe-il une solution pour détecter qu'un download est fini ?

    Le but étant de supprimer le fichier à la fin du download.

    Merci

Discussions similaires

  1. detection evenement fin d'execution
    Par suckthewindow dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 18/07/2006, 19h32
  2. detection de fin de session
    Par elan_gi dans le forum Langage
    Réponses: 18
    Dernier message: 23/06/2006, 13h39
  3. iterator.end() ne detecte pas fin de la string
    Par cyclone3 dans le forum C++
    Réponses: 27
    Dernier message: 12/06/2006, 11h13
  4. [Débutant][ThreadGroup] Détecter la fin de toutes les tâches
    Par onlytoine dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 19/09/2005, 11h47
  5. Detecter la fin d'un ecran de veille
    Par fredderf dans le forum MFC
    Réponses: 12
    Dernier message: 13/06/2005, 18h08

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