Affichage en php/odbc d'une image blob
caro384
Messages postés
91
Date d'inscription
Statut
Membre
Dernière intervention
-
caro384 Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
caro384 Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
j'ai un petit soucis de programmation en php odbc pour l'affichage d'une image stockée dans un champ blob.
L'affichage des autres données fonctionnent correctement, aussi j'ai fait une page test pour l'affichage simple d'une seule image.
Je me retrouve avec 1cm d'image et le reste en gris foncé...
J'ai essayer de charger par sauvegarde, img src, l'image charge bien, cela ne vient donc pas du fichier.
Je précise que les fichiers image sont très légers (15ko).
J'espère que quelqu'un pourra m'apporter une solution, je suis un peu rouillée en php alors n'hésitez pas à détailler ! J'ai testé plusieurs fonctions d'affichage, mais sans succès.
Merci d'avance
<?php
$id=196;
$dsn="DSN Interbase";
$user="crystal";
$pwd="crystal";
$conn=odbc_connect($dsn,$user,$pwd)or die('Error connecting to server');
$H = "SELECT ARTDT.IMAGE
FROM ARTDT
WHERE (ARTDT.ID='$id') ";
$exec = odbc_exec($conn,$H);
while ($data=odbc_fetch_array($exec))
{
$image=$data['IMAGE'];
$image = @imagecreatefromstring($image);
imagejpeg($image);
echo $image;
}
?>
j'ai un petit soucis de programmation en php odbc pour l'affichage d'une image stockée dans un champ blob.
L'affichage des autres données fonctionnent correctement, aussi j'ai fait une page test pour l'affichage simple d'une seule image.
Je me retrouve avec 1cm d'image et le reste en gris foncé...
J'ai essayer de charger par sauvegarde, img src, l'image charge bien, cela ne vient donc pas du fichier.
Je précise que les fichiers image sont très légers (15ko).
J'espère que quelqu'un pourra m'apporter une solution, je suis un peu rouillée en php alors n'hésitez pas à détailler ! J'ai testé plusieurs fonctions d'affichage, mais sans succès.
Merci d'avance
<?php
$id=196;
$dsn="DSN Interbase";
$user="crystal";
$pwd="crystal";
$conn=odbc_connect($dsn,$user,$pwd)or die('Error connecting to server');
$H = "SELECT ARTDT.IMAGE
FROM ARTDT
WHERE (ARTDT.ID='$id') ";
$exec = odbc_exec($conn,$H);
while ($data=odbc_fetch_array($exec))
{
$image=$data['IMAGE'];
$image = @imagecreatefromstring($image);
imagejpeg($image);
echo $image;
}
?>
A voir également:
- Affichage en php/odbc d'une image blob
- Image iso - Guide
- Légender une image - Guide
- Transformer une image en icone - Guide
- Affichage double ecran - Guide
- Mettre une image en filigrane sur word - Guide
2 réponses
regarde du côté de la fonction header en php
https://www.php.net/manual/fr/function.header.php
je tenterai bien un code du genre :
https://www.php.net/manual/fr/function.header.php
je tenterai bien un code du genre :
header('Content-Type: image/jpg', true); echo $image;
Essayé mais non rien n'y fait. Le début de l'image s'affiche, mais uniquement sur 1cm de hauteur, le dessous n'apparait pas.
Est-il possible que l'extraction depuis le champ blob soit mauvaise ou qu'il y ait une erreur de conversion du fichier ?
Je précise que je travaille aussi sous Crystal Report et que pour les mêmes requetes et même images, il n'y a pas de soucis.
Merci pour votre aide
Est-il possible que l'extraction depuis le champ blob soit mauvaise ou qu'il y ait une erreur de conversion du fichier ?
Je précise que je travaille aussi sous Crystal Report et que pour les mêmes requetes et même images, il n'y a pas de soucis.
Merci pour votre aide
déjà sans passer par imagecreate (qui est basé sur la librairie GD donc sur l'installation de php) çà ne fonctionne pas ?
et puis pourquoi un odbc_fetch_array ? il n'y a qu'une image à la fois ? donc qu'un resultat et plutôt un odbc_fetch_row
aussi mettre php avec des traces d'erreurs et warnings (php.ini) çà peut donner plus d'informations
puis dans le premier exemple, je tenterai de remplacer la fin comme ceci :
et puis pourquoi un odbc_fetch_array ? il n'y a qu'une image à la fois ? donc qu'un resultat et plutôt un odbc_fetch_row
aussi mettre php avec des traces d'erreurs et warnings (php.ini) çà peut donner plus d'informations
puis dans le premier exemple, je tenterai de remplacer la fin comme ceci :
$queryexe = odbc_do($connection, $query); $mydata=odbc_fetch_row($queryexe)); $imagerawdata = $mydata['IMAGE']; header('Content-Type: image/jpg', true); echo $imagerawdata;
là je n'ai plus rien du tout qui s'affiche, page blanche.
Pas de message d'erreur.
J'ai également tenté imagecreatefromstring mais idem cela ne fonctionne pas.
J'ai tenté de sauvegarder dans un fichier l'image trouvée : le jpg fait la bonne taille, mais juste la partie supérieure de l'image est remplie, le bas de l'image est blanc.
Pas de message d'erreur.
J'ai également tenté imagecreatefromstring mais idem cela ne fonctionne pas.
J'ai tenté de sauvegarder dans un fichier l'image trouvée : le jpg fait la bonne taille, mais juste la partie supérieure de l'image est remplie, le bas de l'image est blanc.