Kvaeri Skrevet 2. april 2008 Del Skrevet 2. april 2008 Hei, Jeg har en tabell med personinfo, der har jeg også en kolonne "Image" med datatypen "Image". Disse dataene kjører jeg ut i labeler på en egen "profil-side". Har lyst til å vise dette bildet i et lite format ved siden av personinformasjonen. noen tips på dette? Lenke til kommentar
Manfred Skrevet 2. april 2008 Del Skrevet 2. april 2008 Jeg har et veldig godt tips: Ikke lagre bildene i databasen. Lenke til kommentar
kaffenils Skrevet 2. april 2008 Del Skrevet 2. april 2008 Jeg har et veldig godt tips: Ikke lagre bildene i databasen. Ser ingen problemer med å lagre noen hundre/tusen små bilder i SQL Server? Ville brukt varbinary(max) i stedet da image vil bli fjernet i fremtidige versjoner av SQL Server. Det kan forresten nevnes at det i SQL Server 2008 er lagt mye bedre opp til lagring av binære data/filer ved å bruke varbinary(max) FILESTREAM datatypen. Lenke til kommentar
Manfred Skrevet 2. april 2008 Del Skrevet 2. april 2008 Joda, alt til sitt bruk. Det kommer til an på HVA man lagrer der. Men generelt sett er jeg motstander av lagring av bilder i databasen. Lenke til kommentar
kaffenils Skrevet 2. april 2008 Del Skrevet 2. april 2008 Joda, alt til sitt bruk. Det kommer til an på HVA man lagrer der. Men generelt sett er jeg motstander av lagring av bilder i databasen. Men alt dette vil forhåpentligvis bli mye bedre i SQL Server 2008. Ganske stilig med den ny FILESTREM datatypen. filen/binærdataene lagres som en separat fil på SQL Serveren, du kan få et file handle til filen slik at du kan åpne den som en "ekte" fil i .Net eller ved å bruke diverse Win32 API funksjoner for filhåndtering. Hastigheten skal være vedlig god i forhold til varbinary(max). Fulltekstindexering... Det var det jeg kom på i farten. Lenke til kommentar
Kvaeri Skrevet 2. april 2008 Forfatter Del Skrevet 2. april 2008 det er kun små bilder som skal lagres der...... Lenke til kommentar
GeirGrusom Skrevet 2. april 2008 Del Skrevet 2. april 2008 Joda, alt til sitt bruk. Det kommer til an på HVA man lagrer der. Men generelt sett er jeg motstander av lagring av bilder i databasen. Men alt dette vil forhåpentligvis bli mye bedre i SQL Server 2008. Ganske stilig med den ny FILESTREM datatypen. filen/binærdataene lagres som en separat fil på SQL Serveren, du kan få et file handle til filen slik at du kan åpne den som en "ekte" fil i .Net eller ved å bruke diverse Win32 API funksjoner for filhåndtering. Hastigheten skal være vedlig god i forhold til varbinary(max). Fulltekstindexering... Det var det jeg kom på i farten. Det er jo smart, jeg bruker FTP for å lagre bilder, og da møter man jo på problemet at FTP er en idiotisk protokoll. Lenke til kommentar
Manfred Skrevet 2. april 2008 Del Skrevet 2. april 2008 Apropo SQL Server 2008. Er ikke denne lansert enda? Evt. når kommer den? Lenke til kommentar
kaffenils Skrevet 2. april 2008 Del Skrevet 2. april 2008 Lanseringen ble utsatt fra februar til en gang på høsten. Lenke til kommentar
serverside Skrevet 3. april 2008 Del Skrevet 3. april 2008 Ulempene: - Kan ikke bruke FTP til å laste opp/ned - Databaselagring er ofte dyrere enn webhotell - Når bildene skal presenteres må de først transporteres fra databaseserver til webserver for deretter å prosesseres. - Mer komplisert å kode Fordelene: - Bildene faller inn i samme backup-rutiner som databasen Hvis du ikke har en veldig god grunn til å gjøre dette så vil jeg anbefale å la være. En av de virkelig gode grunnene til å lagre filer i databasen er at søk i filene (med index server) blir meget enkelt, men en bildefil er jo ikke søkbar. Jeg ville nok anbefalt deg å holde bildene på filsystemet... På codeproject finner du mange bra artikler om dette. bl.a. http://www.codeproject.com/KB/web-image/EasyThumbs.aspx Lenke til kommentar
GeirGrusom Skrevet 3. april 2008 Del Skrevet 3. april 2008 (endret) - Når bildene skal presenteres må de først transporteres fra databaseserver til webserver for deretter å prosesseres. Det kommer vel an på webside/webserver? Dessuten brukes ikke ALLE databaser til websider. Jeg synes det er større fordeler en ulemper med dette. Fordelen er også at FTP er stygt, teit, og gammeldags, og burde ikke brukes hvis det ikke trengs. Endret 3. april 2008 av GeirGrusom Lenke til kommentar
Manfred Skrevet 3. april 2008 Del Skrevet 3. april 2008 For min del er det liten grunn til å bruke FTP for opp/nedlasting, størrelse på database betaler jeg ikke for, koden er da slett ikke avansert. Jeg kan ikke se hva slags argumenter du skal ha mot dette. Hvis man i tillegg kan få et handle, som kaffenils sier, så forsvinner jo alle argumentene dine i et stort jafs. Gleder meg til å se nærmere på dette. Det blir liksom ikke det samme som å lagre bilder i BLOB i mysql Lenke til kommentar
kaffenils Skrevet 3. april 2008 Del Skrevet 3. april 2008 men en bildefil er jo ikke søkbar. For å pirke litt så kan du jo f.eks. hente ut EXIF data hvis bilde inneholder dette. Lenke til kommentar
Manfred Skrevet 3. april 2008 Del Skrevet 3. april 2008 ...og skal du hente ut dette, så ble det straks mye mer effektivt enn å måtte skrive kode som åpner og tråler alle bildefilene Lenke til kommentar
kaffenils Skrevet 3. april 2008 Del Skrevet 3. april 2008 ...og skal du hente ut dette, så ble det straks mye mer effektivt enn å måtte skrive kode som åpner og tråler alle bildefilene Eller enda mer effektiv: registrer et jpeg IFilter i SQL Server slik at EXIF kan leses og indexeres av Full-Text Index tjenesten. Lenke til kommentar
j000rn Skrevet 3. april 2008 Del Skrevet 3. april 2008 Jeg synes det er større fordeler en ulemper med dette.Fordelen er også at FTP er stygt, teit, og gammeldags, og burde ikke brukes hvis det ikke trengs. Hvordan klarer du å blande inn FTP i diskusjonen?? SQL kan IKKE erstatte FTP, dette er to heeeelt forskjellige ting. En bedre sammenligning vil være FTP vs. vanlig fileshare. Og SQL vs. filsystem. FTP/fileshare/webservices/brevduer/etc er transport, SQL/filsystem er lagring. (Ja, man kan laste opp bilder over TDS (SQL protokollen), men å putte databasen på internett elller la klienten få direkte tilgang til dette er ikke veldig lurt). Jeg ville nok heller brukt webside/webservice (gjerne med SSL) for å laste opp bilder, for deretter å lagre dem i enten database eller filsystem. Andre bakdeler med bilder i databasen: * DatabaseLog filer kan vokse seg veldig store. * Backup blir stor -- eller "komplisert" på grunn av oppdeling. * Mye mer nettverkstrafikk mellom webserver/client og databaserserver. * Mer jobb å gjøre for databaseserveren. Og vanligvis er det databaseserveren som har mye å gjøre, mens webserverene går på tomgang. Særlig disk IO kan være en en flaskehals, så man bør tenke igjennom om man virkelig vil dytte alle bildene også over på DB. Og helst på egne disker. Jeg har tidligere gjordt begge deler... Både i database og til filsystem. Noe av det viktigste er å TENKE over konsekvensene når man gjør dette. Hva betyr fordelene og bakdelene for DEG? Hvordan blir dette når du får X brukere og skal scale-out? Hvordan gjør du backup idag? Hvor mye har du tenkt å betale for disk på DB og web/klient? etc... ---- Men hvordan vise dem: Enkleste måte er å lage en ASPX side som f.eks. heter ShowDBImage.aspx?ImageID=xxx * Fjern alt innhold fra ASPX siden utenom øverse linjen med <%# ...etc...%> * Hent ut data på vanlig måte fra SQL (SqlConnection, SqlCommand, etc)... * Sett ContentType og Content disposition header * Page.Respose.OutputStream for å skrive ut bildet Men det er nok bedre å lage en httpmodule eller httphandler for å slippe overhead'n med at .Net må lage en Page som i eksempelet over. Lenke til kommentar
GeirGrusom Skrevet 3. april 2008 Del Skrevet 3. april 2008 HTTP er også en teit protokoll btw. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå