Comment afficher une image stocké dans la base de données?? [Résolu]

Messages postés
38
Date d'inscription
vendredi 5 février 2010
Dernière intervention
16 mai 2013
- 26 mai 2011 à 12:06 - Dernière réponse :
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Dernière intervention
8 janvier 2014
- 29 mai 2011 à 21:13
Bonjour,
Je réalise un tp dans lequel je dois manipuler des images jpeg et gif. La démarche pour l'insertion marche b1. Elle est fait avec un formulaire comme suite:
<form action="" method="post encetype="multi../data">
          

</form>
. à la récupération après la vérification de la taille et du type de l'image, l'insertion marche b1.

Mais lorsque j'essaye d'afficher l'image, j'aperçois une série de caractère incompréhensible au lieu de mon image.
Normalement lors de l'insertion, si on recupère le contenu de l'image avec
$val=get_file_contents($_FILES['nom_dans_le_formulaire']);
, l'affichage doit pouvoir se faire avec
echo $recuper_image;
après bien entendu la sélection de l'image dans la base avec
select contenu,...,... from table_Image where condition
.
L'affichage ne marche pas. Pourquoi?? Y a t-il une alternative??


djibi071
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
- 26 mai 2011 à 13:03
3
Merci
bonjour

as tu un bout de code upload
comment stockes tu ton image dans un blob ou dans un repertoire

a++

Bonne programmation !

Merci cod57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cod57
Meilleure réponse
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
23 octobre 2014
- 26 mai 2011 à 14:36
3
Merci
Peut être une piste, n'oublie pas d'envoyer le header correct pour l'affichage des images, par exemple pour une image PNG

header( 'Content-Type: image/PNG');



________________________________________
( $toBe || !$toBe ) = $this->Question();

Merci inwebo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de inwebo
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Dernière intervention
8 janvier 2014
- 26 mai 2011 à 17:38
0
Merci
Quel est ce nouvel attribut ?
encetype="multipart/form-data"

Peut-être qu'un
enctype="multipart/form-data" irait mieux !
Commenter la réponse de 007Julien
Messages postés
38
Date d'inscription
vendredi 5 février 2010
Dernière intervention
16 mai 2013
- 27 mai 2011 à 21:49
0
Merci
@007Julien Merci pour la signalisation de l'erreur, c'est juste une erreur de frappe.

@cod57 Oui j'en ai une, pourquoi???

@inwebo Merci, j'ai pas mit cette instruction, mais je vais l'essayer tt de suite.

merci à cous tous


djibi071
Commenter la réponse de djibidl
Messages postés
38
Date d'inscription
vendredi 5 février 2010
Dernière intervention
16 mai 2013
- 29 mai 2011 à 12:36
0
Merci
Finalement j'ai adopté la technique de stockage de l'image dans un répertoire et enregistrement de son nom dans la base de données.Là aussi, l'affichage marche pour les images dont le nom est stocké en un seul bloque c'est à dire sans espace. Mais dès qu'on inclus une espace dans le nom du genre (ma photo), l'image ne s'affiche pas.
Qu'est ce qui fait ça??


djibi071
Commenter la réponse de djibidl
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Dernière intervention
8 janvier 2014
- 29 mai 2011 à 21:13
0
Merci
Les serveurs et notamment Apache ont horreur des espaces (et accents) dans les noms de fichiers. En toute hypothèse, la meilleure solution consiste à renommer les fichiers cela permet d'éviter les colisions en cas de doublons.

Une méthode consiste à faire appel à l'heure avec, à titre d'exemple

$tdy=gmdate('YmdHis');
$sfx=strtolower(strrchr($_FILES['leFichier']['name'],'.'));
   // Test sur les extensions autorisées

$fch="img_$tdz$sfx";
if (move_uploaded_file($_FILES['leFichier']['tmp_name'],"dir/".$fch) {
   // Tout va bien
}

Dans certains cas specifiques (*), il convient d'aller aux millisecondes ou de compléter avec un élément aléatoire type md5().

(*) Cas d'un enseignant, dont les élèves d'un atelier informatique enregistraient leurs travaux tous en même temps en fin de la séance.
Commenter la réponse de 007Julien

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.