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 :

bouton pour permettre le téléchargement d'une photo


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut bouton pour permettre le téléchargement d'une photo
    Bonjour,

    J'ai une page de mon site avec une image et je souhaite mettre un bouton télécharger à coté qui du coup permet de télécharger l'image à l'endroit où l'utilisateur souhaite l'enregistrer.

    Je sais qu'il est possible de faire clique droit , enregistrer sous mais j'aimerai vraiment trouver la solution pour avoir un bouton qui peut télécharger l'image. Du style ouvrir un popup qui demande ou l'enregistrer..

    Je sais pas si je suis claire.

    Merci pour votre aide

  2. #2
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    Salut
    Essai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <FORM ACTION="chemin/fichier.jpg"> 
    <INPUT TYPE="SUBMIT" VALUE="Telecharger"> 
    </FORM>
    A+

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut
    Alors ca marche pas tout à fait. J'ai une page avec plein de petite photo, je clique sur agrandir et ça m'ouvre une page avec le fond d'écran en grand et le bouton télécharger doit me permettre d'ouvrir une espèce de popup avec une fenetre enregistrer sous, pour que la personne ne soit pas obligé de faire enregistrer sous en cliquant droit sur la photo

    Le code que tu m'as donné me rouvre une page avec le fond d'écran en grand.

    Y a t-il une solution pour faire ce que je veux?

    Merci

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Comme le navigateur sait afficher les images, par défaut il va le faire. Si tu veux changer ce comportement par défaut, il faut lui préciser que c'est un fichier à transmettre, par exemple, une solution en PHP :

    http://php.developpez.com/faq/index...._forcedownload

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut
    Alors j'ai bien fait ce qui est montré. J'ai écrit dans ma page image.html, après la fermeture de ma balise html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
    $filename = "/pictures/fondecran/soleil.jpg";
    $dir = "http://monsite.fr/pictures/fondecran/" ;
    $chemin = $dir;
    print "<a href='download.php?chemin=$chemin&filename=$filename'><p align='center'><span style='font-size:9pt;'><font face='Verdana' color='white'>
    Cliquez ici pour enregistrer l'image</font></span></p></a>" ;
    ?>
    Et j'ai crée le fichier download.php avec juste le code suivant dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=".$filename);
    readfile($chemin.$filename);
    ?>
    Je l'ai mis au même endroit que ma page image.html

    Et quand je regarde mon page, je vois bien mon image et en dessous le texte Cliquez ici pour enregistrer l'image mais je vois juste en dessous " ; ?

    je sais pas ce que j'ai oublié, est ce bien ça qu'il faut mettre?

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut
    Alors après avoir modifier des trucs, ça fonctionne mais par contre il me fait télécharger le fichier $filename.php

    L'erreur vient de quoi?

    Pour que le download passe bien en lieu j'ai du enlever la balise de fermeture php et la mettre au dessus..

    Voilà le code à la fin de mon fichier.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    $filename = "soleil.jpg";
    $dir = "/pictures/fondecran/soleil.jpg/" ;
    $chemin = $dir;
    ?>
     
    <a href='download.php?chemin=$chemin&filename=$filename'>download</a>" ;
    Merci pour votre aide

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut
    Après encore des modifs et des test, il me télécharge le fichier download.php

    J'ai 2 fichiers :
    --download.php avec juste le code donné au dessus
    --image.html où après la fermeture de la balise html, j'ai mis cette fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    $filename = "soleil.jpg";
    $dir= "http://monsite.fr/pictures/fondecran/soleil.jpg/".$filname; 
     
     
    ?>
    <a href="download.php?dir=<?=$dir?>&filname=<?=$filname?>">Download</a>
    Je ne vois pas quoi changer.
    Merci

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut
    Ca fonctionne enfin. Je mets le code pour ceux qui chercherait à le faire fonctionner comme moi.

    ALors dans la page download.php, on met juste le code suivant :
    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
    <?php
    if (isset($_GET["filename"]))
    {
    $filename=$_GET["filename"];
    // ne conserver que le nom du fichier : le nom que verra s'afficher l'utilisateur
    $uploadname=basename($filename);
     
    // Envoi du fichier
    header('Content-Transfer-Encoding: none');
    header('Content-Type: application/octetstream');
    header('Content-Disposition: attachment; filename="'.$uploadname.'"');
    header('Content-length: '.filesize($filename));
    header("Pragma: no-cache");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
    header("Expires: 0");
    @readfile($filename) OR die();
    }
    ?>
    Ensuite dans notre page .html où on veut pouvoir faire télécharger l'image, on rajoute juste avant la fermeture de la balise <body>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?
    $filename = "CIMG1026.JPG";
    $dir= "http://monsite.fr/pictures/fondecran/nom de l'image.jpg/".$filname; 
     
     
    ?>
    <BR /><BR />
    <center><a href="download.php?filename=CIMG1026.JPG">Cliquer ici pour t&eacute;l&eacute;charger l'image</a></center>
    Donc tout fonctionne, merci pour l'aide que j'ai eu

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

Discussions similaires

  1. [XL-2007] Bouton pour copier des cellules d'une feuille à une autre
    Par Samizarrad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2010, 16h27
  2. Bouton Pour sauvegarder les enrégistrements d'une table
    Par NOUBISSI dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/02/2010, 16h39
  3. Connectivité pour délimiter des formes sur une photo
    Par romu37fr dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/06/2007, 13h28
  4. Bouton pour confirmer un ajout dans une table sous Access
    Par cestimagik dans le forum Access
    Réponses: 3
    Dernier message: 31/12/2006, 10h32

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