23. juli 2002 - 10:37Der er
8 kommentarer og 1 løsning
opdater tabel med binary data
Jeg bruger AspJpeg fra persits til at redigere billeder der er gemt i database. Selve redigerigen går fint men når jeg skal opdatere min tabel med de nye data, går det galt. Uddrag fra koden :
' resize
jpeg.Width = int(Request("intWidth"))
' Set new height, preserve original width/height ratio jpeg.Height = int(RS("PicHeight")) * jpeg.Width / int(RS("PicWidth"))
' apply sharpening Jpeg.Sharpen 1, 110
Jpeg.SendBinary
' opdater tabel med nye billeddimensioner strSQL = " UPDATE tblMedia SET " strSQL = strSQL & " image_blob = " & "'" & Jpeg.SendBinary & "'" strSQL = strSQL & " WHERE mediaID=" & Request("mediaID")
Connect.Execute strSQL
eget bud er; at der er karakterer i SQL-forespørgslen som denne ikke kan håndtere.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg kender ikke denne komponent specifikt, men baseret på erfaringer med andre komponenter, er et bud på problemet at du kalder SendBinary 2 gange. Mange upload komponenter tillader kun at man kalder save metoden én gang, måske er det samme situation med SendBinary ?
Og undskyld jeg spørger, men hvorfor gemmer du billederne i databasen og ikke i filsystemet ?
Synes godt om
Slettet bruger
23. juli 2002 - 11:25#2
Har du udskrevet SQL sætningen med Response.Write? Definér "går det galt".... evt. fejlmeddelelse?
ja, undskyld jeg ikke var specifik nok; jeg får ikke nogen fejlmeddelelse, sqlforespørgslen bliver eksekveret men billedet bliver ikke gemt rigtigt. Når jeg prøvet at åbne billedet igen med flg linie: Jpeg.OpenBinary rs("image_blob").Value - får jeg flg error:
Persits.Jpeg.1 error '80040035' Not a JPEG file: starts with 0x70 0xde
ja hvorfor valgte jeg at gemme billederne direkte i databasen ? hvis jeg havde gemt billederne i filsystemet skulle jeg alligevel bruge en db til at tracke diverse information om filerne alligevel. Jeg undgår at billederne bliver overskrevet pga af ens filnavne og når jeg tager backup at db´en bliver billederne samtidig backup´ed
Synes godt om
Slettet bruger
23. juli 2002 - 12:01#4
Jeg tror tmceu har de "performance issuses" i tankerne, som denne metode forårsager.
Har du prøvet at skrive filen til noget andet end databasen med sucess - Med samme metode (Jpeg.SendBinary) ?
Jeg har oplevet et lignende problem med et webkamera. Hvis jeg skriver de binære data direkte til en browser, vises billedet uden problemer. Hvis jeg derimod gemmer det i en fil og derefter åbner det i et hvilket som helst grafik program, får jeg en fejl i samme stil, at der mangler noget "header information" for et JPEG billede. Jeg kan til gengæld godt vise samme billedfil i browseren uden problemer.
Umiddelbart vil jeg mene at JPEG formatet ikke bliver overholdt af komponenten efter Sharpen metoden og at du derfor gemmer et ugyldigt format. Jeg vil foreslå dig at poste data for en mindre fil hhv. før- og efter du har manipuleret billedet og høre om nogen enten herinde eller måske endnu bedre på usenet kan se hvad der går galt.
Og mht. at gemme binære data i databasen vs. filsystemet, ja så tænker jeg på performance. I min verden har billeder o.lign. intet at gøre i en database, hvis man er bare en smule performance orienteret.
Filsystemet er meget bedre til at tage sig af netop filer. Derfor mener jeg at det er bedre blot at gemme sti/filnavn i databasen og selve filen i filsystemet. Og mht. at få filerne overskrevet, kan de fleste upload komponenter håndtere dette. Hvis overwrite sættes til false, vil komponenten postfixe navnet med eks. (1) el.lign. så filerne ikke overskrives.
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.