bonjour à tous,
Je suis confronté léger soucis d'affichage d'une image stocker dans MySQL.
Pour ce qui est de l'enregistrement dans la BDD et l'affichage je me suis appuyé sur ce tutoriel
http://beaussier.developpez.com/arti...hp/mysql/blob/
La partie enregistrement ce fait très bien (enfin je pense puisque le champ blob se rempli ) mais par contre je sais pas ce qui est stocké est correct ou pas.
Le site est basé sur un pseudo MVC je ne sais pas si ela peux avoir une influence sur l'affichage de l'image, je ne suis pas assez expérimenté dans ce domaine, mais c'est en forgeant que l'on devient forgerons)
Pour l'enregistrement voici le code
Pour ce qui est de la vue (il s'agit d'une fenetre modal)
fonction tranfert
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 <?php if (isset($_FILES['fic'])) { transfert(); } ?> <div class="modal fade" id="uploadImage" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">Insérer une image du site</h4> </div> <div class="modal-body"> <form enctype="multipart/form-data" action="#" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="250000" /> <input type="file" name="fic" size=50 /> <input type="submit" value="Envoyer" /> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal -->
Avant l'enregistrement je redimmensionne l'image pour qu'elle puissent s'afficher dans une cellule d'un tableau prédimmentionner, por ce faire j'utilise la bibliothèque PhpThumb.
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
36
37
38 function transfert() { $ret = FALSE; $img_blob = ''; $img_taille = 0; $img_type = ''; $img_nom = ''; $taille_max = 250000; $idimage = $_SESSION['iddossier'] . $_SESSION['sousDossierEnCours']; $ret = is_uploaded_file($_FILES['fic']['tmp_name']); if (!$ret) { echo"Problème de transfert"; return FALSE; } else { //le fichier à bien été reçu $img_taille = $_FILES['fic']['size']; $imageRetailler = PhpThumbFactory::create($_FILES['fic']['tmp_name']); $imageRetailler->resize(300, 300)->save($_FILES['fic']['tmp_name']); $img_taillereduit = $_FILES['fic']['size']; if ($img_taille > $taille_max) { echo 'Trop gros'; return FALSE; } else { $img_type = $_FILES['fic']['type']; $img_nom = $_FILES['fic']['name']; //recupération du contenu binaire du fichier image stocker dans un répertoire temporaire $img_blob = file_get_contents($_FILES['fic']['tmp_name']); //enregistrement de l'image dans la BDD $pdo = PDOIbgn::getPDOIBGN(); // $req = "UPDATE sousdossiers SET photoDuSite= '" . addslashes($img_blob) . "' WHERE dossiers_iddossiers = " . $_SESSION['iddossier'] . " AND numSousDossiers = " . $_SESSION['sousDossierEnCours']; $req = "INSERT INTO images(idimages, imgNom, imgTaille, imgType, imgBlob) VALUES (" . $idimage . ",'" . $img_nom . "','" . $img_taille . "','" . $img_type . "','" . addslashes($img_blob) . "')"; $pdo->requeteAction($req); return TRUE; } } }
Pour l'affichage de l'image
Ce que j'obtiens à l'affichage c'est ceci (c'est qu'un extrait sinon il y a 8km de ligne de ce tye)
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 <table class="table table-image" id="table-image"> <tr> <th> <?php $req = "SELECT idimages,imgType, imgBlob FROM images WHERE idimages = " . $_SESSION['iddossier'] . $_SESSION['sousDossierEnCours']; $col = $pdo->getFetchRow($req); if (!$col[0]) { ?> <img src="./img/image-inserer-icone-3816-128.png"> <?php } else { header("Content-type: " . $col[1]); echo $col[2]; } ?> </th> </tr> </table>
Pouvez vous m'aider s'il vous plait à trouver la solution pour que j'apprenne l'erreur ou les erreurs que j'ai faites ?����JFIF��R��f|���`��ڠ�����f��"#��]�bW8#9�����"+���=�כ�_�Zz-��Y�.!;F����������WX��L��G����4�ڪ2w���OL�ԓ��Ӝח�j��Gl�����8 <�|�C�ՑN�f!� ņI#'������9$b�lݣ�^�}�]|�\M��JUl�K�i]^�ךﮚ]]�uE������5(ۏ4�$ pG_C�=H=�y�[��#(���R������ޤ�Q�+�P�d,����w �� vHɇ�8��z]F��g��q-H?�&�n^k�7�����T\���͞)N���ߦឝpO_|{ו�B^1��/���� x�9$�$q�c�%�$�f`T���ו8�pN O�<{_�����̨�u$ܹ��i��h��9�?ڋ�����j��"a�*�~��'8����#��m�C���C ...
Je vous en remercie par avance
bonne journée
Partager