Bonjour,
ça fait environ un mois que j'essaie en vain de gérer le stockage puis l'affichage de types BLOB (images au format .png ou .jpeg, et des PDF) qui doivent être uplaodés sur ma BDD (je sais que c'est une mauvaise idée, mais mon laps de temps m'empêche d'aller vers une autre solution plus adéquate).
Je parviens à insérer une image sur la base de bonnée grâce à ce code :
Malheureusement la lecture du binaire est plus compliquée, j'ai suivi divers tutos et j'obtiens ce code, qui ne m'affiche rien:
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 if(is_uploaded_file($_FILES['img']['tmp_name'])) { $imgData =addslashes(file_get_contents($_FILES['img']['tmp_name'])); $imageProperties = getimageSize($_FILES['img']['tmp_name']); } /* .... */ $req = $bdd->prepare("INSERT INTO actu(titre, contenu, position, imageType, imageData) VALUES(:titre, :contenu, :position, :imgType, :imgData)"); $req->execute(array( 'titre' => $titre, 'contenu' => $contenu_modifie, 'position' => $position, 'imgType' => $imageProperties['mime'], 'imgData' => $imgData ));
Le fichier de récupération du BLOB:
et dans ma page d'actualités, voici la ligne correspondante qui devrait afficher l'image:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php include("connexion.php"); if(isset($_GET['im_id'])) { $getid = intval($_GET['im_id']); $req2 = "SELECT id, imageType, imageData FROM actu WHERE id=" . $getid; $bdd->query($req2); while($row = $req2->fetch()) { header("Content-type: " . $row['imageType']); echo $row['imageData']; } }?>
Si quelqu'un a une idée sur l'origine du problème, ou directement une solution, n'hésitez pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php if($actu['imageType'] != NULL) {?> <div class="col-md-4"> <img class="img-responsive" src="imageView.php?im_id=<?php echo $actu['id']; ?>" alt="" /> </div> <?php }?>
Partager