Er der nogle der ligger inde med et par kodestumper der viser hvordan man gemmer et billede i sql, og henter det ud igen. Og kan man vise et billede hentet fra sql'en, uden at man først skal gemme det på serveren?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
det der er det lidt specielle ved det, er nok det med at du bliver nødt til at have en slags "imageserver". altså en side der angiver content-type til et billede, og så bare hælder de rå bytes ud i response-streamen. du kan så (på en anden side) sætte et billede ind, og sætte en url med en parameter, der så peger på "imageserveren". mvh
Først tak for det hurtige svar. Linket ser fint ud, men jeg har ikke forklaret min problemstilling ordentligt (sorry). Jeg skal hente en række billeder ind i en datalist, hvor jeg skal vise dem med andre informationer. Hvordan kan jeg få billederne ind i en datalist fra sql databasen?
ahhh.... du kan sørge for at sætte din ImageUrl på dine billeder på denne form : ImageUrl="ImageServer.aspx?ImageId="+someImageId
og så kan din ImageServer så være bygget op som vist i eksemplet ... altså f.eks. en page_load som følger :
private void Page_Load(object sender, System.EventArgs e) { SqlConnection connection = new SqlConnection(Settings.ConnectionString); SqlCommand command = new SqlCommand("select ContentType, [Data] from [Image] where ImageId = " + ImageId, connection); connection.Open(); SqlDataReader dr = command.ExecuteReader(); if(dr.Read()) { Response.ContentType = dr["ContentType"].ToString(); Response.BinaryWrite( (byte[]) dr["Data"] ); } connection.Close(); }
En lille eksempelside kunne være sådan her : <body> <form id="Form1" method="post" runat="server"> <asp:DataList id="SomeList" runat="server"> <ItemTemplate> <asp:Image id="someImage" runat="server" ImageUrl='<%# GetImageUrl((int) DataBinder.Eval(Container, "DataItem.ImageId")) %>'> </asp:Image> </ItemTemplate> </asp:DataList> </form> </body>
Bemærk at du skal skal implementere en metode der returnerer dig linket - f.eks. sådan her :
Du må sige til hvis der er noget af det der er tåget... Så kan jeg evt. lægge noget kode du kan kopiere ind direkte. (i den forbindelse må du gerne lige skrive hvad du udvikler i... VS.NET WebMatrix eller hvad det nu er + om du helst skriver aspx-kode, eller om du bedre kan lide at have funktionaliteten i din code-behind).
Beklager meget den lange svartid fra min side, der har været lidt tryk på. Jeg kunne godt tænke mig lidt copy-paste kode hvordan man gemmer et billede i sql og hvordan man hiver det ud igen. Jeg bruger VS 2003, og bruger som regel code-behind.
det er vel sådan set copy/paste du fik til det med at sætte billeder ind i en liste, men kan du ikke spørge specifikt til eksemplet, hvis der er noget af det du er i tvivl om ?
mht. til det med at gemme billeder :
Hvis du bruger en sql-server, kunne du lave dig et setup som følger :
// og en procedure til at indsætte et billede CREATE PROCEDURE dbo.InsertImage ( @ContentType nvarchar(4), @Name nvarchar(50), @Size int, @Data image ) AS SET NOCOUNT OFF; INSERT INTO Image(ContentType, Name, Size, Data) VALUES (@ContentType, @Name, @Size, @Data); SELECT @@IDENTITY
Så kan du fra din kode gøre noget i denne stil :
public int InsertImage(string contentType, string name, int size, byte[] image) { SqlConnection connection = new SqlConnection(Settings.ConnectionString); SqlCommand insertCommand = new SqlCommand("InsertImage", connection); insertCommand.CommandType = CommandType.StoredProcedure;
hvordan går det her? (et svar hvis noget kunne bruges) mvh
Synes godt om
Ny brugerNybegynder
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.