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

  1. #21
    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
    Voilà, je vais faire ça. Par contre, faut utiliser BOLD je crois comme type pour insérer les images.
    Enfin j'ai juste 3 champs (id, name et path)
    Par contre, du coup faut que mes images soient présentes sur mon pc, je peux pas utiliser les images présentes sur mon ftp?

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    BOnjour !

    Non non attends déjà deux points :

    c'est blob et pas bold^^

    Sinon nous on te propose juste d'enregistrer un id avec son chemin (donc un champ texte) l'image elle est sur le serveur non?
    ►Ne pas oublier le

  3. #23
    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
    Les images sont sur le ftp de free. Je les ai déposé avec Filezilla.
    Et oui je me suis trompée j'ai tapé trop vite

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Donc voila en fait à chaque fois que tu fera un upload tu ajoutera une occurrence dans ta table image un id (en auto increment j'imagine) et le chemin du fichier uploadé... après ca sera un jeu d'enfant a récupérer et a afficher
    ►Ne pas oublier le

  5. #25
    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
    Y aurait-il un bon endroit pour chercher comment tout gérer par l'id dans mon fichier php. Parce que je dois mettre les infos de connection à la base dans un fichier pour permettre le download de l'image?

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    ben en gros voila l'idée premier script qui propose toute les images :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($JeuEnr=mysql_fetch_assoc($requete)){
     
        echo '<a href="image.php?id='.$JeuEnr['id'].'">Image'.$JeuEnr['id'].'</a>';
    }
    Puis sur le script image.php ou tu récupère l'id en $_GET, sans oublier sur les deux pages d'inclure le script de connexion =)
    ►Ne pas oublier le

  7. #27
    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 me parait clair :
    1 script de connexion
    1 script qui récupère toutes les images
    1 script qui permet de récupérer l'id de l'image sélectionné et qui permet du coup de télécharger l'image

    Je vais avancer tout ça et je reviendrai si j'ai des questions.

    Merci pour les infos

  8. #28
    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, je suis un peu perdu quand même.
    J'ai réalisé le script de connexion (connect.php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    mysql_connect( 'sql.free.fr' , 'login' , 'pwd' );
    mysql_select_db ('mabdd');
    ?>
    Après il doit y avoir le script qui récupère toutes les images (pictures.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include("connect.php");
     
    while($JeuEnr=mysql_fetch_assoc($requete)){
     
        echo '<a href="image.php?id='.$JeuEnr['id'].'">Image'.$JeuEnr['id'].'</a>';
    }
    ?>
    Après ce script, je dois avoir un autre qui en fonction de mon image va retrouver l'id.
    Là j'avoue être un peu perdu (all_images.php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
       $id = $_GET['id'];
     
    // On récupère l'image
       $sql = "SELECT photo FROM pictures WHERE id='".$id."'";
       $result = mysql_query($sql);
     
       header('Content-type: image/jpeg');  // cf (1)
       header('Content-transfer-encoding: binary');
     
    // on l'affiche
       echo $result["photo"];
    ?>
    C'est là que je suis perdue. J'ai ma page html avec pleins de photos miniatures et dès que je clique sur une miniature elle doit s'afficher en grand et pouvoir être téléchargeables via un bouton.

    Quand je clique sur la miniature c'est là que les scripts rentrent en compte. Il doit trouver l'id de la photo et l'afficher.

    Je pense que le script all_images.php est incomplet. de plus, le photo dans le select j'ai pas ce champ dans ma base. je sélectionnerai donc le path..

    Obito tu peux m'éclairer? Merci

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    la ton echo ne te donne que le chemin j'imagine?

    Je pensais faire plutôt ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img scr="'.$result['photo'].'" alt="photo">';
    Ici je suppose que le champ photo contient le chemin de l'image (en relatif ou absolu d'ailleurs?^^)
    ►Ne pas oublier le

  10. #30
    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
    J'ai corrigé le détail faux. Et oui, dans ma base le champ photo correspond au chemin de l'image. Par contre, comment ça se passe après avec ces fichiers php?

    De plus, $JeuEnr ca correspond à quoi? le nom de la base?
    J'ai ma page fondecran.html qui contient toutes les miniatures. A l'heure actuelle, je clique sur 1 miniature (ex: soleil.jpg) et hop ca redirige vers la page soleil.html qui m'ouvre en grand l'image.

    Mais là vu que j'ai ma base et mes fichiers php, j'ai plus besoin de la page soleil.html non?


    Merci de ton aide

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($JeuEnr=mysql_fetch_assoc($requete)){
     
        echo '<a href="image.php?id='.$JeuEnr['id'].'">Image'.$JeuEnr['id'].'</a>';
    }
    Ceci correspondrait en fait à l'affichage de toute les images de ta base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $requete=mysql_query('SELECT id, photo from image') or die(mysql_error());
    while($JeuEnr=mysql_fetch_assoc($requete)){
     
        echo '<a href="image.php?id='.$JeuEnr['id'].'">Image'.$JeuEnr['id'].'</a>';
    }
    Donc la ca va créer un lien par image en passant le $_GET

    Et non soleil.html ne sert plus maintenant on a all_images.php qui montre une image suivant son id
    ►Ne pas oublier le

  12. #32
    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
    J'ai donc balancé mes 3 fichiers sur le serveur ftp de free et modifier quelque chose dans mon fichier fondecran.html (celui qui contient les miniatures)
    J'ai modifié un lien, quand je clique sur la miniature, ca doit m'afficher la grande image donc j'ai mis dans mon fondecran.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tr align="center">
    <td colspan=2><a href= "aller vers la grande">
    <img src= "pictures/fondecran/miniatures/city_petite.jpg" border="1" width="180" height="136"></a>
    </td>
    </tr>
    Quand je clique sur l'image, hop il doit aller vers l'image en question mais vu que j'utilise 2 script, comment mettre les 2?

  13. #33
    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
    Voilà, j'ai refait ma page comme on me l'a conseillé. C'est donc une page php et plus une page html.
    Mes photos miniatures sont affichées à l'aide d'une requete sql.
    J'ai un problème..
    Toutes mes images ne s'affichent pas. Quand je fais CTRL F5 j'en ai toujours que 3 qui s'affiche mais pas toujours les mêmes.
    Mes images sont dans ma base avec le type BLOB et elles pèsent au plus lourd 76,9 Ko.

    Quelqu'un peut me dire pourquoi elles ne s'affichent pas toutes?

    Je vous joins le code. J'ai 3 scripts, 1 script connect.php avec mes infos, 1 script affiche_photo.php et un script fondecran.php

    Voici les 3 codes :

    connect.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    // Parametres base MySQL
    $host = "sql.free.fr"; 
    $user = "monlogin"; 
    $pass = "mon password";
    $database = "ma base"; 
     
    // connexion a la base MySQL
    $liendb = mysql_connect($host,$user,$pass) or die ("impossible de se connecter au serveur");
    @mysql_select_db("$database") or die("Impossible de se connecter à la base");
    // -------------------------------------------------------
    ?>
    fondecran.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    include('connect.php');
    $query = "SELECT id,miniature FROM pictures";
    $resultat = mysql_query($query);
    $nb_lignes = mysql_num_rows($resultat);
    $nb_colonnes = 3;
     
    echo'<table border="0" cellspacing="3" cellpadding="5" width="100%" bgcolor="yellow">';
    		echo'<tr>';
        		echo'<td align="center" colspan="3"><h3>Personnalisez votre bureau</H3><br><br /><br /></td>';     
        	echo'</tr>';
    for($i=0;$i<$nb_lignes; $i++)
    {
     
    	if($i==0)
    		echo'<tr>';
     
    	if($i!=0 && $i%$nb_colonnes==0)
    		echo '</tr><tr>';
     
    		$id=mysql_result($resultat,$i,"id");
    		//echo '<img src="affiche_photo.php?id=$id" width="180" height="136">';
    		echo "<img src=\"affiche_photo.php?id=$id\" width=\"180\" height=\"136\">";
     
        echo'</td>';
     
    }
     
    if($nb_lignes!=0)
    	echo '</tr>';
    echo'</table>';
    mysql_close($liendb);
     
     
    ?>
    affiche_photo.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
    17
    18
    19
    <?php
     
    require("connect.php");
    $id=$_GET['id'];
     
    $requete= "SELECT miniature FROM pictures WHERE id LIKE '$id'";
    $resultat=mysql_query($requete);
     
    if(mysql_num_rows($resultat)==1)
    {
    	$image=mysql_result($resultat,0,"miniature");
     
    	header("Content-type: image/jpg");  
    	print $image; 
     
    }
     
    mysql_close();
    ?>

    Merci d'avance

  14. #34
    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
    En fait je vais fermer ce post, car le problème a été résolu et j'en ai rouvert un avec un titre qui correspondait plus à mon problème actuel.

    Le code que j'ai mis permet donc d'afficher des images présentes dans une base de données. Il fonctionne mais toutes les images ne s'affichent pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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