Comment afficher une image stocké dans la base de données??

Résolu
djibidl Messages postés 37 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 16 mai 2013 - 26 mai 2011 à 12:06
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre 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

6 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
26 mai 2011 à 13:03
bonjour

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

a++

Bonne programmation !
3
inwebo Messages postés 380 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 23 octobre 2014
26 mai 2011 à 14:36
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();
3
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
26 mai 2011 à 17:38
Quel est ce nouvel attribut ?
encetype="multipart/form-data"

Peut-être qu'un
enctype="multipart/form-data" irait mieux !
0
djibidl Messages postés 37 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 16 mai 2013
27 mai 2011 à 21:49
@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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djibidl Messages postés 37 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 16 mai 2013
29 mai 2011 à 12:36
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
0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
29 mai 2011 à 21:13
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.
0
Rejoignez-nous