Avatar billede thums Praktikant
24. august 2003 - 10:31 Der er 18 kommentarer og
1 løsning

Gem Billed i MySQL - BLOB

Hvordan gør man det??
Avatar billede thums Praktikant
24. august 2003 - 10:45 #1
PS..... Det må MEGET gerne være i færdig kode og ikke kun en tutorial(må dog gerne følge med men intet krav)..... er lidt utålmodig i dag :)
Avatar billede keysersoze Ekspert
24. august 2003 - 11:36 #2
inden du går alt for meget i gang, så skulle du måske overveje bare at gemme billedet på serveren og kun gemme fil-navnet i databasen. Det er ikke særlig optimalt at lægge billedet direkte i databasen.

Er der noget speciel grund til at du vil gøre det?
Avatar billede thums Praktikant
24. august 2003 - 12:01 #3
Jepper.... det er fordi at det skal holdes i kun de filer som db'en består af... der må ikke oprettes yderligere filer/billeder for hvert nyt billed der skal i DB'en....

synes også det lyder lidt dumt .. men sådan er opgaven lavet.. ;)
Avatar billede netro Nybegynder
24. august 2003 - 21:58 #4
Ja, det er en dum løsning, men du indsætter således:

Insert Into Tabel Set Felt = Load_File('/sti/til/fil.ext')

Og henter det igen sådan:

Select Felt From Tabel

- og husk så at feltet skal være af typen BLOB, som du også skriver i titlen.
Avatar billede netro Nybegynder
25. august 2003 - 04:46 #5
Glemte lige at vise dig, hvordan du udskriver det binært.

Set rs = Conn.Execute("Select Felt From Tabel")
Response.ContentType = "image/jpeg"
Response.BinaryWrite rs("Felt")

Husk at stien skal være absolut.

Lavede lige en lille uvidenskabelig test før, hvor jeg indsatte 10.000 billeder á 100kb i databasen. Det tog ca. 3 min sammenlagt, og en where-clause tog under 1 msek uden index.

Så det er da bestemt til at holde ud. Dog vil jeg stadig hævde, at man ikke bør opbevare binære data i en database som Access.
Avatar billede netro Nybegynder
25. august 2003 - 21:16 #6
Er du der??
Avatar billede thums Praktikant
27. august 2003 - 10:42 #7
Sorry at jeg var væk i lidt tid.. men troede ikk at der var nogen der gad og svarer på det :)

Mange Tak for dit svar.... og undskyld ventetiden
Avatar billede thums Praktikant
27. august 2003 - 10:43 #8
det er også i MySQL.. :)
Avatar billede keysersoze Ekspert
27. august 2003 - 15:23 #9
om det er access eller mysql gør ikke den store forskel ;)
Avatar billede netro Nybegynder
27. august 2003 - 16:25 #10
Jeg har aldrig lagt binære data i Access, men jeg ville blive overrasket, hvis den uden problemer kunne rumme flere GB binære data, som MySQL kan og stadig være stabil og hurtig.
Avatar billede keysersoze Ekspert
27. august 2003 - 16:30 #11
det er klart at MySQL kan håndtere mere end access kan - men performance set i forhold til hvis billeder lå på serveren vil kunne mærkes
Avatar billede netro Nybegynder
27. august 2003 - 16:37 #12
Ja, generelt fraråder jeg også denne løsning. Men man må jo også opveje fordele og ulemper mod hinanden. Har man en side med et begrænset antal brugere og en god database som f.eks. MySQL, kunne jeg sagtens finde på at opbevare billederne der, da det bl.a. letter backupprocedurer og mindsker risikoen for uoverensstemmelse mellem tabeldata og mappernes indhold.
Avatar billede keysersoze Ekspert
27. august 2003 - 16:43 #13
den risiko burde vel være 0 hvis bare man laver sine ting ordentligt ;)

anyway - jeg er enig med dig så der er intet at diskutere. bare en generel kommentar
Avatar billede netro Nybegynder
27. august 2003 - 16:56 #14
Ja, men ved den slags løsninger laver jeg alligevel normalt en funktion til at tjekke integriteten, hvis uheldet skulle være ude.
Avatar billede thums Praktikant
27. august 2003 - 18:49 #15
Hehe... under alle omstændigheder er jeg sindsygt glad for at i gad og hjælpe.... :)
Avatar billede netro Nybegynder
27. august 2003 - 19:37 #16
Velbekomme :)
Avatar billede thums Praktikant
27. august 2003 - 20:06 #17
STien til filen.. skal den være absolut?? dvs. c:/inetpub/../osv eller hvordan??
Avatar billede thums Praktikant
27. august 2003 - 20:14 #18
connection.Execute("Insert Into image_db Set Picture = Load_File('c:/inetpub/wwwroot/gnee/ImageFolder/" & fil & "');")

og det virker ikke! :(
Avatar billede netro Nybegynder
27. august 2003 - 20:59 #19
Ja, det skal den:

Insert Into Tabel Set Felt = Load_File('c:\sti\til\fil.ext')
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester