Ja det har jeg fået til at virke. Det hele fungerer sådan set fint nok i en standard windows applikation. Men jeg kan ikke få det til at virke på en webform, problemet er at jeg ikke ved hvilke muligheder der er når det skal være på en hjemmeside. Jeg har prøvet at placere en file komponent på webformen: <input id="File1" runat="server" name="File1" type="file" />
Men når jeg har lagt hjemmesiden op på min server får jeg følgende fejl:
"Could not find a part of the path 'C:\Dokumenter\Billeder\DSC00146.JPG'"
Skyldes det at komponenten forventer at filen ligger på serveren hvor hjemmesiden ligger placeret og ikke på klienten hvor browseren er åben?
Er ved at få skruet noget sammen der virker tror jeg. Men jeg har et par småproblemer. 1. I min tabel er der plads til at gemme 2 billeder. Det skal efterfølgende være muligt at slette et eller begge af disse billeder. Men hvilkenn værdi giver man et felt af typen 'image' hvis man ønsker at fjerne billedet igen. Kan man give det værdien null ?
2. Når jeg skal læse billederne fra databasen, henter jeg billedet fra databasen og skriver det til en fil på serveren, hvorefter jeg giver stien til dette billede til en image kontrol hvor billedet vises. Dette gøres ved denne kode:
Dim data() As Byte = myReader("Billede2") Dim s As New FileStream(Server.MapPath(Request.ApplicationPath) & myReader("id") & ".jpg", FileMode.Create) s.Write(data, 0, data.Length) s.Close() Image2.ImageUrl = Server.MapPath(Request.ApplicationPath) & myReader("id") & "2" & ".jpg"
Men findes der ikke en smartere måde at gøre dette på? Tænker på at det er lidt spild af resurser at skulle udtrække et billede fra en database for derefter at skulle skrive den til en fil. Kan dette ikke gøres uden dette "mellemled"?
SqlConnection con = new SqlConnection(CONNSTR); con.Open(); SqlCommand sel = new SqlCommand("SELECT pic FROM od WHERE id = " + id, con); byte[] b = (byte[])sel.ExecuteScalar(); con.Close(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=\"" + id + ".pic\""); Response.BinaryWrite(b);
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.