Vkládání obrázku do DB pomocí datového typu BLOB

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
dotTwelve
Člen | 167
+
0
-

Ve formuláři mám pole file $form->addFile('image', 'Obrázek'); ale nevím co ještě musím s tím obrázkem udělat, než ho vložím do DB. Dibi mi křičí při insertu: Unexpected object.

Panda
Člen | 569
+
0
-

Načíst jeho obsah a vložit do databáze jako binární string (modifikátor %bin v dibi).

despiq
Člen | 320
+
0
-

no fuj, doufam ze ta DB neni MySQL

marek.dusek
Člen | 99
+
0
-

Píšeš to dost vágně, tj. není jasné, co vlastně nevíš – předně je nutné si samozřejmě obsah toho souboru klasicky načíst, ale to je předpokladám jasná věc ;) Co se uložení do DB týče, záleží na tom, co používáš – např. pro Oracle a MSSQL má dibi podporu spíš na papíře, takže je nutné si související věci dodělat sám. Pro MySQL by to mělo jít viz kolega nademnou.

dotTwelve
Člen | 167
+
0
-

Uz to mam reseno takto:

<?php
$values = $form->getValues();
$fp = fopen($values['image']->getTemporaryFile(), 'rb');
$binarydata = addslashes(fread($fp, $values['image']->getSize()));
$values['image'] = $binarydata;
?>

Nechtelo se mi to ukladat na ftpko, i kdyz by to nebyl problem. Todle bude jeden obrazek, kterej nebude mit vice jak 1MB a budou tak maximalne 3 za mesic :D

Databaze je MySQL na tom nesejde.

SyXcz
Člen | 75
+
0
-

dotTwelve napsal(a):

Uz to mam reseno takto:

<?php
$values = $form->getValues();
$fp = fopen($values['image']->getTemporaryFile(), 'rb');
$binarydata = addslashes(fread($fp, $values['image']->getSize()));
$values['image'] = $binarydata;
?>

Nechtelo se mi to ukladat na ftpko, i kdyz by to nebyl problem. Todle bude jeden obrazek, kterej nebude mit vice jak 1MB a budou tak maximalne 3 za mesic :D

Databaze je MySQL na tom nesejde.

stejně mi to přijde dost zbyteční… zbytečně budeš aplikaci brzdit načítáním obrázků z DB, ze souboru se načtou mnohem rychleji… píšeš 3 obrázky za měsíc, ale za rok to už je 36, každej 1 MB, to máš 36 MB zbytečných dat v DB… nic ve zlym, ale zlatej soubor… :o)

Mortaelth
Člen | 24
+
0
-

stejně mi to přijde dost zbyteční… zbytečně budeš aplikaci brzdit načítáním obrázků z DB, ze souboru se načtou mnohem rychleji… píšeš 3 obrázky za měsíc, ale za rok to už je 36, každej 1 MB, to máš 36 MB zbytečných dat v DB… nic ve zlym, ale zlatej soubor… :o)

Máš to nějak podložené? Co jsem se bavil s majitelem jednoho hostingu, tak to prý testovali a výkonostně tam rozdíl prý nebyl.

dotTwelve
Člen | 167
+
0
-

nakonec jsem to stejne ulozil na ftpko a do databaze ulozil cestu…jeste jsem udelat to, ze kdyz klient smaze zpravu s obrazkem, tak se obrazek presune do kose, aby z nich mohl v budoucnu opet vybirat…