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 télécharger image sans faire clic droit / enregistrer sous


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut Bouton pour télécharger image sans faire clic droit / enregistrer sous
    Bonjour,

    Je cherche à réaliser un bouton qui permet de télécharger les images présentes sur mon site. Je veux éviter le bouton clic droit/enregistrer sous...

    Ai-je besoin de stocker mes photos sur une base de données? Je suis chez free..

    J'ai essayé plusieurs codes qui me permettent de télécharger des images, mais rien ne fonctionne. L'image télécharge (elle est stockée sur mon ftp du serveur free mais pas dans une bdd sql) mais elle fait toujours que 1,26 ko donc je pense qu'un truc ne marche pas

    Merci d'avance pour votre aide, je ne trouve vraiment plus de solutions

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Ben dans ce cas tu appel un script sur le click du bouton qui forcera le téléchargement et c'est avec la fonction header que l'on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     header("Content-type: application/force-download" );
     header("Content-Disposition: attachment; filename=$filename" );
    bon $filename sera bien entendu le chemin de ton fichier exemple /images/monimage.jpg

    Attention le header doit bien se trouver tout en haut du script avant d'autre code...

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut
    J'ai essayé cela mais l'image ne se télécharge pas, enfin la fenetre de téléchargement fonctionne mais au final l'image téléchargé est incomplète.

    Le fichier download.php

    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
    <?php
    if (isset($_GET["filename"]))
    {
    	$filename=$_GET["filename"];
     
    	// Envoi du fichier
    	header('Content-Transfer-Encoding: none');
    	header('Content-Type: application/octetstream; name="'.$filename.'"');
    	header('Content-Disposition: attachment; filename="'.$filename.'"');
    	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();
    }		
    ?>
    Le code qui se trouve dans la page où j'ai l'image à télécharger:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?
    $filename = "CIMG0727.JPG";
    $dir= "http://monsite/pictures/fondecran/CIMG0727.JPG/".$filename; 
     
     
    ?>
    <BR /><BR />
    <center><a href="download.php?filename=CIMG0727.JPG">Cliquer ici pour t&eacute;l&eacute;charger l'image</a></center>
    Je ne trouve plus, c'est peut être un truc bête que j'ai oublié mais je vois pas du tout quoi.

    Que mettre de plus? Surtout que le téléchargement s'ouvre bien mais l'image ne se télécharge pas en fait ou du moins que 1,26ko à chaque fois

  4. #4
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    header("Content-disposition: attachment; filename=$filename"); 
    header("Content-Type: application/force-download"); 
    header("Content-Transfer-Encoding: image/jpeg\n");
    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);
    Sinon rien ne me semble mal écrit mais on peut remplacer

    header('Content-Type: application/octetstream; name="'.$filename.'"');
    par :

    header("Content-Transfer-Encoding: image/jpeg\n");
    même si octetstream est général autant essayer de spécifier le type du fichier d'entrée...^^

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut
    Alors, j'ai testé en mettant ton code à la place du mien dans le fichier download.php
    J'ai toujours le même problème. Je joins un screenshot pour montrer le problème après le téléchargement de l'image

    Les images sont stockées sur le ftp de chez free. Ca suffit pour qu'elle soit téléchargeables?

    J'avoue être perdu avec ce problème. J'ai essayé plusieurs choses mais toujours pareil

    Merci pour l'aide
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/01/2013, 17h04
  2. boutons pour afficher images
    Par timtof2011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/10/2011, 21h47
  3. [PHP 5.2] [PHP-JS] Changer l'image lors du clic droit 'Enregistrer sous'
    Par jep33 dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2009, 15h19
  4. Réponses: 2
    Dernier message: 26/03/2007, 16h47
  5. Executer barre de taches sans faire click droit
    Par kikica dans le forum Autres Logiciels
    Réponses: 15
    Dernier message: 11/08/2005, 12h59

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