+ Répondre à la discussion
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 52
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut Affichage Image Jpeg

    Bonjour à tous,

    Je cherchais un tuto sur internet sur le comment afficher un bouton type 'file'. Puis j'ai finit par trouver mon bonheur un tuto qui me disais carrèment quoi créer dans ma base de donnée et quels scripts entrer. Au début je l'ais refait un peu à ma facon en changeant mes noms d'attributs, etc. Bien évidement ca ne marche pas et je finis par recopié tous son script lettre par lettre. Mais voilà tous marche sauf à la fin c'est pas aussi magique que le tuto sa m'affiche toutes les données crypté.

    Je donne le code apercu.php:

    Code :
    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
     
     
    <?php
     
    if (isset($_GET['id']))
    {
     
    	$id= intval ($_GET['id']);
    	include ("connexion.php");
     
    	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
     
    	$ret = mysql_query ($req) or die (mysql_error ());
    	$col = mysql_fetch_row ($ret);
     
    	if ( !$col[0] )
    	{
    		echo "ID image inconnu";
    	}
    	else
    	{
    		header ("Content-type : ".$col[1]);
    		echo $col[2];
    	}
    }
    else
    {
    	echo "Mauvais ID d'image";
    }
     
    ?>
    Ce qui me chagrine c'est le intval j'ai chercher sur php manuel et apparament cela retourne la valeur numérique entière de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10). Et je me demande quelle valeur elle prend sur ce coup. Pour moi intval prends l'id de l'image. Donc en clair si mon image est dans l'id 12 de ma BDD elle convertira ma valeur en base de 12??

    Et le deuxième hic c'est le 'Content type' qui prends les valeurs de la colone 1 de ma BDD c'est a dire la deuxième. La deuxième colone de ma BDD est le nom. Pourtant il me semble qu'il faudrait afficher mon type dans Content type qui est $col[4]. Mais dés que je fais la modification j'ai une erreur.

    Voilà j'appelle à votre aide. J'utilise php 5.3.8 j'ai verifier si j'avais pas un problème de compatibilité sur certaine syntaxe. Si vous désirez un autre bout du code n'hésité pas, je vous remercie d'avance de votre aide. Pour ce qui connaisse peut être c'est le tuto de Cyril Beaussier que je remercie au passage.

  2. #2
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    on connait pas ta base donc $col[4] c'est quoi ?
    et c'est pas terrible de mettre des image en BLOB dans la base, tu prends de la mémoire de la ressource et de bande passante inutilement

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Ma BDD :

    nom de la BDD : intraimage

    nom de table : images

    1 : img_id : clé primaire auto-increment int(11)
    2 : img_nom : varchar (50)
    3 : img_taille : varchar (25)
    4 : img_type : varchar (25)
    5 : img_desc : varchar (100)
    6 : img_blob : type blob attribut binary

    Ok merci du conseil pour Blob mais je vais tenter de suivre d'abord le tuto et je changerais plus tard de facon à utilisé un autre type d'image. Je sais qu'on peut utiliser l'URL d'une image ce qui rend bien moins compliqué la chose, mais je voudrais quand même stocké une image.

    Pour repondre à $col[4] je dirais donc à img_desc, je me suis donc tromper je voulais remplacer par $col[3] qui est img_type. Il ne donne pas plus de sucés de le remplacer.

  4. #4
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    c'est MIME que tu dois mettre donc image/png par exemple

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    else
    	{
    		header ("mime_content_type : image/jpeg");
    		echo $col[2];
    	}
    }
    '???' :$ J'ai essayer comme sa parce que j'ai pas trop compris ce que signifie MIME et ou je dois le mettre. Pareil pour l'extension image/png ou plutot image/jpeg pour moi.
    Si vous pouvez être plus claire svp. Merci pour votre aide.

  6. #6
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    pourquoi mettre mime_content_type ???

    c'est juste

    Code :
    header ("Content-Type : image/jpeg");

  7. #7
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Je sais pas je sais pas je test juste comme j'ai vu que la fonction je pensais que c'est sa que vous me disiez de faire.

    J'ai integrer le bout de code et c'est toujours pas sa. Je vois just en plus Content-Type : image/jpeg et "ma liste de charabia".

  8. #8
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    J'envoie transfert.php au cas ou ce serait un mauvaise enregistrement sur ma BDD mais j'ai verifier plus de 3 ou 4 fois :



    Code :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
     
    function transfert ()
     
    {
     
    $ret = false;
    $img_blob = '';
    $img_taille = 0;
    $img_type = '';
    $img_nom = '';
    $taille_max = 2500000;
     
    $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
     
    	if (!$ret)
    	{
    	echo "Problème de transfert";
    	return false;
    	}
    	else
    	{	
    		//le fichier a bien été recu
     
    		$img_taille = $_FILES['fic']['size'];
    		if ( $img_taille > $taille_max)
    		{
    			echo "Fichier trop gros !";
    			return false;
    		}
    		$img_type = $_FILES['fic']['type'];
    		$img_nom = $_FILES['fic']['name'];
     
    		include ("connexion.php");
     
    		$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
     
    		$req = "INSERT INTO images (".
    									"img_nom, img_taille, img_type, img_blob ".
    									") VALUES (".
    									"'".$img_nom."', ".
    									"'".$img_taille."', ".
    									"'".$img_type."', ".
    									"'".addslashes ($img_blob)."') ";
     
    								$ret = mysql_query ($req) or die (mysql_error ());
    								return true;
     
    	}
     
    }
    ?>

  9. #9
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    ton blob c'est img_blob donc met les bonnes informations

  10. #10
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Code :
    $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    $img_blob prends la valeur du fichier template_name ?
    file_get_contents() retourne le fichier filename dans une chaîne.
    Et la requête sql ajoute des "/" Pour eviter les caractères spéciaux. Je vois pas ou est l'erreur. Je sais pas du tout ce que vous avez en tête.

  11. #11
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    je parle de ta table, img_blob est bien le champs qui contient le binaire ? et img_type le MIME ?

  12. #12
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Oui c'est censé être comme sa. img_blob pas img_blog même si je pense que c'est une faute de frappe.

  13. #13
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    bon fait un mysql_fetch_assoc et met
    Code :
    1
    2
    3
     
    header ("mime_content_type : " . $col['img_type']);
    echo $col['img_blob'];
    ce que toi ta fait correspond a

    Code :
    1
    2
    3
     
    header ("mime_content_type : " . $col['img_nom']);
    echo $col['img_taille'];
    normale que ça ne marchais pas, faut toujours tester tes valeurs avant ...

  14. #14
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Code :
    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
    <?php
     
    if (isset($_GET['id']))
    {
     
    	$id= intval ($_GET['id']);
    	include ("connexion.php");
     
    	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
     
    	$ret = mysql_query ($req) or die (mysql_error ());
    	$col = mysql_fetch_row ($ret);
     
    	if ( !$col[0] )
    	{
    		echo "ID image inconnu";
    	}
    	else
    	{
    		header ("mime_content_type : " . $col['img_type']);
                              echo $col['img_blob']; 	
    }
    else
    {
    	echo "Mauvais ID d'image";
    }
     
    ?>
    mysql_fetch_assoc je le remplace par $col = mysql_fetch_row ($ret); ???

    et je lui met quoi comme attribut? mysql_fetch_assoc ( ? , $col) ?

  15. #15
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    $col = mysql_fetch_row ($ret);
    $col = mysql_fetch_assoc ($ret);

    c'est la base de PHP tout ça ...

  16. #16
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Je sais bien je sais bien je débue en php. Cela dit cela n'a pas changer grand chose. Juste mes caractères sont soulignés maintenant. :/

  17. #17
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    montre ton nouveau code

  18. #18
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    apercu.php :

    Code :
    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
    <?php
     
    if (isset($_GET['id']))
    {
     
    	$id= intval ($_GET['id']);
    	include ("connexion.php");
     
    	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
     
    	$ret = mysql_query ($req) or die (mysql_error ());
    	$col = mysql_fetch_assoc ($ret);
     
    	if ( !$col['img_id'] )
    	{
    		echo "ID image inconnu";
    	}
    	else
    	{
    		header ("mime_content_type : " . $col['img_type']);
                             echo $col['img_blob']; 	
    }
    else
    {
    	echo "Mauvais ID d'image";
    }
     
    ?>

  19. #19
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 638
    Points
    10 638

    Par défaut

    mime_content_type ...

  20. #20
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2012
    Messages : 27
    Points : 1
    Points
    1

    Par défaut

    Citation Envoyé par stealth35 Voir le message
    pourquoi mettre mime_content_type ???

    c'est juste

    Code :
    header ("Content-Type : image/jpeg");
    Je met sa alors?

    Code :
    1
    2
    header ("Content-Type : " . $col['img_type']);
              echo $col['img_blob'];
    ???

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •