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 de fichier son, cacher le chemin


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut [Sécurité] forcer le téléchargement de fichier son, cacher le chemin
    bonjour à tous, j'ai un lien qui va vers un fichier son: mamusique.wma

    D'abord , je ne veux pas afficher directement le chemin qui va vers le fichier.

    Ensuite , je veux forcer le téléchargement du fichier(Quand je clique sur le lien, je ne veux pas écouter la chanson mais le télécharger sur mon disque)

    Est-ce que quelqu'un peut me montrer comment faire.

    Merci

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, tu peux jeter un oeil ici : http://php.developpez.com/faq/?page=..._forcedownload

    Bon développement ;-)
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Tiens là
    http://www.toulouse-renaissance.net/c_outils/c_musiclic.htm

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    j'ai essayé le truc du faq mais j'ai quelques problèmes:

    - le chemin vers le fichier ('path') : est-ce qu'on doit faire C:/repertoire/fichier.wma ou www.monsite.com/fichier.wma. Avec le premier,
    il y a des erreurs sous IE lors du téléchargement, est-ce du à la taille du fichier.

    Avec le deuxième, il n'y a rien qui se passe.

    Merci

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    sous IE, j'ai des problèmes de type:

    "Le site requis n'est pas disponible ou n'a pas pu être trouver. Réessayer
    ultérieurement".

    Est-ce qu'il faut ajouter quelquechose ?

    VOici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      header("Content-type: application/force-download");
      header("Content-Length: ".filesize($Chemin));
      header("Content-Disposition: attachment; filename=".basename($Chemin));
      readfile($Chemin);
    est-ce du au fait que ce code n'est pas en début de page?

    ou est-un temps limite de téléchargement?

    Alors que sous FireFox il n'y a pas de problème

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    maintenant, c'est réglé, mais j'ai un autre problème, le téléchargement ne s'effectue qu'une fois sur deux.

    Voici le nouveau code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      header("Content-type: application/octet-stream");
      header("Content-Disposition: attachment; filename=".basename($Chemin));
      header("Content-type: application/force-download");
      header("Content-Length: ".filesize($Chemin));
      header("Pragma: no-cache");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
      header("Expires: 0");
      readfile($Chemin);

  7. #7
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    avec les headr, c'est toujours la meme chose : "avec firefox y'a pas de probleme"

    bon, je t'aurais bien dit que tu ne doit rien envoyer avant, mais si ca marche sous FF...

    t'est allé voir du coté des RFC?

    t'est sur du filesize?
    pour le filename, je susi pas sur que tu doive mettre le path...
    c'est quoi
    ?

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    j'ai oté le mais il y a toujours le même erreu, le téléchargement marche une fois sur deux sur IE

  9. #9
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    si ca peut t'aider, mon header pour un fichier CSV (et j'en ai chié avant kil marche correctement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    header("Pragma: public"); 
    		header("Expires: 0"); 
    		header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    		header('Content-Description: File Transfer'); 
    		header('Content-Type: application/vnd.ms-excel'); 
    		header('Content-Length: ' . filesize($this->pathAndFile)); 
    		header("Content-Disposition: inline;filename={$this->pathAndFile}"); 	
    		readfile($this->pathAndFile);

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    non ca se fait toujours une fois sur deux.et sur la page s'affiche des trucs et l'erreur est du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /GenreClassicalWM/AlbumTitleWM/MCDIL6+96+1755+93EF+EAD3+13AA4+1A2E4+1F5B6WM/TrackWM/TrackNumberWM/YearWM/ComposerWM/LyricsWMFSDKVersion8.00.00.4373WMFSDKNeeded0.0.0.0000Îuø{Fэ‚`—É¢² ˆü¡Ü«ŒG©ÏŽäÀ Sehí“ÿ[¨†J‘~‰¾›„âT] 0׿òxÎÀÌ` ².0Îò,( º º ˆüµ¿_.©ÏŽãÀ Se.ÒÓ«º©ÏŽæÀ Se‘Ü··©ÏŽæÀ Ser@žiøM[Ϩý€_\D+PÍÿaÏ‹²ª´â ¸­OaD¬C  ˆu.  @Rц1У¤ ÉHö–ARц1У¤ ÉHöWindows Media Audio V8 64 kbps, 44 kHz, stereoa6&²uŽfϦ٪bÎljX í“ÿ[¨†J‘~‰¾›„âTÌ‚]t ( Ÿü”ˆ*»ý?’!W£ÖÄAh¿í$ÎgûI"3ŸØ` +Ì%7ëi¥)IX äÛŸ!$��š‚•µ‚%@%€±Òb%W¤  M+rLILeû3²Äö׃ˆÄÆj¿I¥%b–‰|Š(¡»dÔc媯57$  IšOÆ!¹¦ýË켊_ñ>’“%1RŠ¡) ,&ÊI2RE4¹®Ù (ÅM‚šÑ¤¼x‹]3C4Ñ.gÛ¯~(Ôª¹Q;é5&~F°Vër)~dœ7ïÖéXi¦ €(”Ò`Èɐ"€’RQBRe)M)&jV–‚Õ2RJI`•…%4¥)J_Ò’¦¢@š‚( ¥$”¥)¨„lJÙ·~¸ŠÚÙÐ`s$ý*²Š :eé-•IÐÙ.²)ð:jš´­ÔGB`I™$˜NÉ8€³$’λ,ÞŸ--ÒìPR\¤°ÀîTe™hJ®‰Û
    et j'ai modifié le code comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      header("Pragma: public");
      header("Expires: 0");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
      header('Content-Description: File Transfer');
      header("Content-type: application/octet-stream");
      header("Content-Disposition: attachment; filename=".basename($Chemin));
      header("Content-type: application/force-download");
      header("Content-Length: ".filesize($Chemin));
      readfile($Chemin);

  11. #11
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    ca me faisait pareil avec mon csv : ca me l'affichait dans le navgateur avec les header aavnt...
    c'est mon content type qui etait mauvais...

    esaie d'aller voir chez google et de chercher une RFC en rapport...

    pour conniatre le bon content type

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      header("Pragma: no-cache");
      header("Expires: 0");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
      header('Content-Description: File Transfer');
      header("Content-type: audio/basic");//basic pour fichier son
      header("Content-Transfer-Encoding: audio/basic");//basic pour fichier son
      header("Content-Disposition: attachment; filename=".basename($Chemin));
      header("Content-type: application/force-download");
      header("Content-Length: ".filesize($Chemin));
      readfile($Chemin);
    j'ai changé le applicatio/ par audio/basic mais j'ai toujours le même problème.
    Le premier téléchargement marche ensuite le second affiche la page qui contient ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ÷Œl„“\ëÆz6‡Î\êΟ.Q‚o‚ekÍ’éuªEJÕ¿¡ÿ}ù‡ÔЇlûóET¾ýдùoò @BÚ±A|”1”‰| 4R*½ ôÁî—4çª{Í8ƒ biÄŠQȱ4Š".qtÏ8úSÞ”pþi §Ri:VD؉E"i\é¾zÖ¤’¹ýzÖ¤’¹ýÂ!O™ìéwOž°=Ä)Ö™·­`Øâ&t½i•¿ÏóZÀAcXùï‚gù?Â/ÊÆÜüþíÜkO­üAib)5 VMRìP„™½Qã9#:70³qäd &”»iE—yì»éyoDÓ^²Oҝ§ÅˆQÎé¹vQ' ó‹OMé±éuÄï1 i‰9mλ:½^®Üþ‰Õêõvçôx ”@óNŸü¤6üõ«[Ñ•X¥Ò6ùqRþß””åKÍø”²šdMþU ðˆM  5 îy½.H? ª—n†Qúnx”?(Y=Óž¹z‹¦H…[Eï:ŠRâhD¦RÖmö9Ô¾.jùý“©|\ÕóûÊ:è #%7ŠÄN'Ô:¬ð‹ˆoÏöœötýƒf µpþÅpç¿î´Ç„|"·n§ñº~¦‚CxC> Š([È#;—©J4õX‰¤Ç ‹§Â˜€ò]Œè΍îuH)v */x¥Ü?(=ã|3 ûAùé&âO îu-ª—~uðÞ—`yÞ°ªÒˆ¢Å’ ,‰Ý8ºLê]ÌíñH^–œX@õÄK…:`ô…†ú‹Ày ”CqçºC^½”
    est-ce que je dois aussi changer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     header("Content-type: application/force-download");
    par qlq chose d'autre

  13. #13
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    je en suis pas un rpo loin s'en faut (en fait je debute autant que toi)

    mais d'apres ce que j'ai compris (empiriquement)

    si tu met deux fois le meme header :
    le second va remplacer le premier (ils ne s'empilent pas)

    donc n'en met qu'un AMHA

  14. #14
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    et qu'est-ce que je dois oter alors , le premier audio/basic ou le second application/force-download?

    ou doit-je changer le second en audio/force-download?et retirer le premier.

  15. #15
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    j'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      header("Pragma: no-cache");
      header("Expires: 0");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
      header('Content-Description: File Transfer');
      header("Content-Transfer-Encoding: base64");// pour fichier son
      header("Content-Disposition: attachment; filename=".basename($Chemin));
      header("Content-type: audio/force-download");
      header("Content-Length: ".filesize($Chemin));
      readfile($Chemin);
    mais c'est toujours le même problème sous IE

  16. #16
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    t'a essayé les deux cas?

    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-Transfer-Encoding: base64");// pour fichier son
    c'est quoi?

    dsl, je te l'ai deja dit, je susi pas un pro des header...

  17. #17
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Content-Transfer-Encoding: base64");// pour fichier son
    c'est pour l'ncodage des fichiers sons,

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/09/2012, 12h47
  2. [cmake] Forcer un ordre pour la compilation de plusieurs fichiers
    Par systemofaxav dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 18/02/2010, 17h17
  3. Comment forcer safari de charger le contenu de mes fichiers CSS
    Par hastiok dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 20/12/2009, 23h58
  4. 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