erreur lors de l'affichage d'une image extraite d'une base

Invité
Invité n'ayant pas de compte PHPfrance

28 mai 2011, 21:53

J'aime afficher une image de la base de données.
J'ai écris ce code ci dessous mais j'obtiens l'erreur suivant: "the image cannot be displayed because it contains errors php"
ce même code fonctionne dans une autre page de mon site mais dans une autre non!! je ne sais pas d'où proviens l'erreur.
Je n'ai pas écris du HTML ou autre avec l'image mais ça ne fonctionne plus.
Prière de m'aider c urgent!!
<?php
if (isset($_GET['action']) and $_GET['action'] == 'view' and isset($_GET['id']))
{
include $_SERVER['DOCUMENT_ROOT'] . '/PFE/includes/db.inc.php';

$id = mysqli_real_escape_string($link, $_GET['id']);
$sql = "SELECT idDocument, typeFichier, contenuFichier
FROM document
WHERE idDocument = '$id'";
$result = mysqli_query($link, $sql);
if (!$result)
{
$error = 'erreur de base de données lors de la recherche de l\'image.';
include $_SERVER['DOCUMENT_ROOT'] . '/PFE/includes/error.html.php';
exit();
}

$file = mysqli_fetch_array($result);
if (!$file)
{
$error = 'fichier non trouvé dans la base de données';
include $_SERVER['DOCUMENT_ROOT'] . '/PFE/includes/error.html.php';
exit();
}
if($file['typeFichier']=="image/jpeg")
$extension=".jpeg";
$filename = $file['idDocument'].$extension;
$mimetype = $file['typeFichier'];
$filedata = $file['contenuFichier'];
$disposition = 'inline';

// Content-type must come before Content-disposition

header("Content-type: $mimetype");
header("Content-disposition: $disposition; filename=$filename");

header('Content-length: ' .strlen($filedata));
echo $filedata;

exit();
}
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 mai 2011, 23:05

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ


Quant à ton problème, si le même code fonctionne pour une autre page, c'est que le problème ne provient pas du code mais des données que tu essayes de lire.

Cependant, si tu as stocké ton fichier correctement (si tant est qu'il soit correct de stocker une image en base) avec un base64_encode() il doit te manquer un base64_decode() pour lire celui-ci...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 1 Messages

29 mai 2011, 19:41

Merci pour l'aide.
En fait le problème provien de l'inclusion d'une autre page par include once situé au début du code. =D>