J'ai un code php assez simple qui renvoie des données d'image binaire d'une base de données.Obtention d'en-têtes lors de la diffusion d'images via PHP à partir d'une base de données
ob_start();
$stmt = $db->prepare($sql);
$stmt->execute(array($ImageID));
$stmt->bindColumn(1, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
ob_clean();
header("Content-Type: " . $content_type);
fpassthru($lob);
Appelons ce script get_image.php. J'appelle ce script d'un autre pour obtenir les données d'image et ensuite le traiter. Ainsi. Je reçois des erreurs des fonctions de traitement d'image disant que "les données ne sont pas dans un format reconnu". Après avoir regardé la réponse, il semble que ma variable $ src inclut les en-têtes ainsi que les données binaires. J'ai fait de la recherche mais je n'arrive pas à comprendre comment se débarrasser de la sortie de l'en-tête et travailler avec la chaîne binaire brute. Toute aide est appréciée. Pour être clair, si j'imprime la chaîne $ src, à la place des données binaires brutes, voici ce que je veux dire.
HTTP/1.1 200 OK
Date: Thu, 19 Nov 2009 17:33:01 GMT
Server: Apache/2.2.8 (Unix) ...
X-Powered-By: PHP/5.2.11
Connection: close
Content-Type: image/jpeg
/* Then all the binary data */
Est-ce que votre navigateur vous montrer de l'image lorsque vous ouvrez http://example.com/get_image.php?ImageID=foo manuellement? – John
Oui. L'image apparaît bien lorsque je frappe le script directement. – Marco