Zobrazení obrázku z databáze
- Allconius
- Člen | 317
Ahoj, jak dostanu do šablony obrázek z databáze ?
Mám v šabloně:
<?php
<img src="{$post->id|foto:''|dataStream}">
?>
Ten filtr „foto“ zavolá funkci:
<?php
public function Obr($idobr)
{
if (is_numeric($idobr)) {
$result = $this->database->table($this->tabulkahsoubory)
->where(''.$this->tabulkahsoubory.'.id = ?', $idobr);
foreach ($result as $id => $row) {
$telo = $row->foto;
}
$image = Image::fromFile($telo);
$image->resize(150, null);
//$image->send(Image::JPEG);
return $image;
}
}
?>
Akorát to Image::fromFile funguje jen na obrázek z URL, když tam dám ten obsah z DB tak to hlásí „TypeError: is_file() expects parameter 1 to be a valid path, string given“
- Allconius
- Člen | 317
Allconius napsal(a):
Ahoj, jak dostanu do šablony obrázek z databáze ?
Mám v šabloně:<?php <img src="{$post->id|foto:''|dataStream}"> ?>
Ten filtr „foto“ zavolá funkci:
<?php public function Obr($idobr) { if (is_numeric($idobr)) { $result = $this->database->table($this->tabulkahsoubory) ->where(''.$this->tabulkahsoubory.'.id = ?', $idobr); foreach ($result as $id => $row) { $telo = $row->foto; } $image = Image::fromFile($telo); $image->resize(150, null); //$image->send(Image::JPEG); return $image; } } ?>
Akorát to Image::fromFile funguje jen na obrázek z URL, když tam dám ten obsah z DB tak to hlásí „TypeError: is_file() expects parameter 1 to be a valid path, string given“
aha tak funguje Image::fromString :-)
- Kamil Valenta
- Člen | 822
Protože je hodně důvodů, proč to nedělat… a snad skoro žádný, proč to dělat.
- posíláš prohlížeči hlavičky, aby si obrázek cachoval?
- kolik těch obrázků v DB bude? odhadneš jak bude tabulka velká? víš, že se bude zdlouhavě zálohovat a v případě problémů zdlouhavě dělat restore? nenarazíš na limity DB?
- není lepší ten resize udělat „jednou“ a nezatěžovat server při každém požadavku na ten obrázek?
Opravdu dobře zvaž, zda nechceš obrázky sypat na disk a do DB si poznačit jen filename…