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 :

[Sécurité] Forcer le téléchargement


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut [Sécurité] Forcer le téléchargement
    Je souhaite forcer le téléchargement d'un fichier .avi sur mon site. J'ai pour cela essayé de nombreux scripts (y compris celui de developpez.net) avec les headers, mais rien n'y fait. Soit le fichier téléchargé est vide, soit il ne se télécharge carrément pas.

    Donc je cherche une solution, qui marche si possible sur tous les navigateurs.


    [Edit]
    Pour compléter mon post, en fait je propose des vidéos aux visiteurs et je veux savoir combien de fois une vidéo à été téléchargée. Donc si le visiteur fait clique droit > enregistrer sous ; ça ne comptera pas comme un nouveau téléchargement.

    Alors je souhaite faire un fichier download.php qui se connectera à ma BDD et qui rajoutera "1" au nombre de téléchargements, et en même temps ça force le téléchargement de la vidéo.

    Donc si vous connaissez une autre méthode, je suis preneur.[/Edit]

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    t aurais pas un pb de content-type ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $fichier = 'http://www.monsite.com/videos/video1.avi';
    $nomFichier = 'video1.avi';
    $tailleFichier = filesize($fichier);
     
    header('Content-Type: application/octet-stream');
    header("Content-Length: $tailleFichier");
    header("Content-Disposition: attachment; filename=\"$nomFichier\"");
    readfile($fichier);
    ?>
    Avec ça, la vidéo se télécharge mais fait 0 ko...
    À noter que je teste ça en localhost sur mon ordi, ça peut venir de là le problème ?

  4. #4
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    salut,
    tu as essayé avec du html tout simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='file.avi' type='application/force-download'>file</a>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Citation Envoyé par Le_coyote
    salut,
    tu as essayé avec du html tout simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='file.avi' type='application/force-download'>file</a>
    J'y ai pensé mais :
    Est-ce que ça marche avec tous les navigateurs ? J'ai lu que sous IE6 ça pouvait coinçait...
    Comment faire pour compter le nombre de téléchargements ? Ouvrir une balise PHP dans la HTML ?

    Et je viens d'essayer et ça marche pas. Ça m'ouvre une nouvelle fenêtre avec la vidéo.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    J'ai réussi à forcer le téléchargement, mais je suis toujours pas satisfait.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $nom_fichier = 'file.avi';
    $directory = 'http://www.site.com/file.avi';
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=".$nom_fichier);
    readfile($directory.$nom_fichier);
    ?>
    Donc avec ce code, ça marche mais du coup je sais pas la taille du fichier, et quand je télécharge, on peut pas la voir du coup.
    Y'a-t-il une solution ?
    J'ai essayé de rajouter :

    $tailleFichier = filesize($directory);
    header("Content-Length: $tailleFichier");

    Mais rien n'y fait...

  7. #7
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    Citation Envoyé par MYster
    $tailleFichier = filesize($directory);
    header("Content-Length: $tailleFichier");
    essaie plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tailleFichier = filesize($directory);
    header("Content-Length: ".$tailleFichier);

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Non, là ça ne télécharge même pas le fichier.

    M'enfin, si y'a aucune possiblité, je vais me contenter de ça.
    Merci quand même !

  9. #9
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 696
    Par défaut
    tu as peut-être un problème de taille de fichier.
    si le fichier fait plus de 2 Mo il peut y avoir des problèmes

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Oui c'est le cas...

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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