30-12-2008, 21:25
|
Vladdy
Registrován: 12-30-2008
Příspěvků 1
|
Vlastnosti třídy - načítání/ukládání obrázku z/do DB
|
|
|
|
|
Dobrý den, hledal jsem, kde se dalo, ale ne a ne najít něco, co by pomohlo..
Používám asp.net +.vb, na stránkách mj. potřebuji pracovat s obrázky - ukládat do DB, načítat z DB.
Doposud jsem používal samostatné funkce, které fungovaly takto:
ULOŽENÍ- Public Function ulozFoto(ByVal poslanySoubor As System.Web.HttpPostedFile, Optional ByVal osobaID As Integer = 0) As Boolean - funkce převede soubor prostřednictvím MemoryStream a uloží v binární podobně do databáze (typ Image), následně vrací informaci o ne/úspěchu při ukládání
NAČTENÍ- Public Shared Function nactiFoto(ByVal osobaID As Integer) As String - funkce načte binární data z DB, prostř. MemoryStream jej uloží do úložiště na serveru, následně vrací HTTP cestu k tomuto souboru jako string
No a konečně k problému: Chtěl bych mít načítání/ukládání dat kompletně řešeno přes třídu a její vlastnosti. Postup zde je ale odlišný od ostatních položek - Když je v DB pouze textová hodnota, lze s Get i Set Vlastností pracovat bez problému, jenže tady se datové typy liší - Get má vracet String (to mi funguje). NAČTENÍ ReadOnly Property fotoGET() As String Get If osobaID > 0 Then m_fotoGET = nactiFoto(osobaID) If m_fotoGET.Contains("Chyba") Then Return "image\noFoto.jpg" Else Return m_fotoGET End If Else Return "image\df.jpg" End If End Get End Property
ALE JAK, PROBOHA, ZPRACOVAT ULOŽENÍ OBRÁZKU? WriteOnly Property fotoSET(ByVal vkladanySoubor As HttpPostedFile) As Byte() Set(ByVal value() As Web.HTTPPostedFile) <procedura, která by převedla HTTPPostedFile, jak potřebuji na Byte()> m_FotoDoDB = value End Set End Property
Hodnota value, která se předává do Set pro nastavení Property musí mít stejný datový typ jako Property samotná, tedy nemohu vložit např. onen Web.HTTPPostedFile do Value, převést na Byte().
Jak to provést? ehm.. snad je to srozumitelné..
|
|
|
|
|
|
|
|
|