Autor Zpráva
Blow
Profil
Ahoj jak se píše v titulku nefunguje mi načítání obrázků které jsou uložené v DB jako BLOB.

Jak je to v mnohých ukázkách ukládám do DB typ obrázku jpeg,png,gif a pak to dávám do Content-Typu ale nefunguje to ani když tam dám přímo image/jpeg

<?php
if (isset($_GET['id'])) {
    try {
        $dbh = new PDO('mysql:host=localhost;dbname=image', "root", "");
        $dbh->exec('SET CHARACTER SET utf8');
        $stmt = $dbh->prepare("SELECT id,type,img from img where id= :id");
        $stmt->bindParam(':id', $id);
        $id = $_GET['id'];
        $stmt->execute();
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        $type = $result['type'];
        //header("Content-Type: image/jpeg");
        header("Content-Type: $type");
        //header("Content-Type: " . $result['type']);
        echo $result['img'];
        $dbh = null;
    }
    catch (PDOException $e) {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
    catch(Exception $e) {
        echo $e->getMessage();
    }
}
?>

zkoušel jsem i ty zakomnetované verze - také nefungovali

vysledkem je to, že se mi objevý "obrázek" - objevý se jen alternativní text ale obrázek ne
Roman256
Profil
Copak ta složitost ? fuj... tohle mi chodí pjěkně (v tomto příklady nejsou ošetřeny chybky, ale každý všuměl si je dodělá :-) )

if (isset($_GET['show']))  {
$id = intval($_GET['show']);

$result = mysql_query("SELECT ext, UNIX_TIMESTAMP(image_time), data FROM `obrazky` WHERE id=$id LIMIT 1");
if (mysql_num_rows($result) == 0) die('no image');

list($ext, $image_time, $data) = mysql_fetch_row($result);

header("Last-Modified: ".gmdate("D, d M Y H:i:s", $image_time)." GMT");
header("Expires: ".gmdate("D, d M Y H:i:s",  $image_time + 86400)." GMT");
header("Content-Length: ".strlen($data));
header("Content-type: image/{$ext}");
echo $data;
};

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
blow
Profil *
Složité? jen protože to má víc řádků :)
Jinak raděj budu používat PDO a než mysql

No nic každopádně mi to už funguje :/
ale absolutně nevim proč to nefungovalo - přitom sem nic nezměnil
očas mi přijde PHP jako velká černá stříň :D
Alphard
Profil
Blow:
Máte ověřeno, že v $result['img'] jsou správná data?

Zkuste něco jako
<?php
header("Content-Type: image/jpeg");
echo file_get_contents("img/e03.jpg");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: