---
title: "visa bilder som finns sparade i databasen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/83197-visa-bilder-som-finns-sparade-i-databasen"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Naaz"
published: "2003-07-31T11:11:39.000Z"
updated: "2003-08-16T12:35:27.000Z"
replies: 17
views: 570
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/83197-visa-bilder-som-finns-sparade-i-databasen"
---

# visa bilder som finns sparade i databasen

## #1 — Naaz, 2003-07-31T11:11Z

Hej!
Jag har tittat på andra inlägg med samma problem men jag har inte blivit klokare. 

Jag har en Datagrid som har en kolumn där man ska visa bilder som har sparats i databasen (alltså själva bilddata har sparats, inte urlen till bilden). 

Hur gör jag om jag vill för varje ItemTemplate i Datagriden (som består av en asp:image) visa lämplig bild? Jag vill inte spara bilden lokalt för att sen visa upp det. 

Mvh,
  Naz

Permalänk: https://www.webforum.nu/p/83197

## #2 — renholm, 2003-07-31T15:17Z

Du bör göra antigen en HTTPHandler eller en aspx sida som har hand om att hämta bilden från databasen, då blir det så att i din asp:image så anger du adressen till din aspx sida eller httphandler som hämtar bilden, \<asp:image ImageUrl="visabild.aspx?=68"/\>

Permalänk: https://www.webforum.nu/p/1124508

## #3 — Naaz, 2003-08-01T10:25Z

Tack så jättemycket! :-) Jag valde lösningen med asp:image ImageUrl="visabild.aspx?=68"/\> och det funkar jättefint! 

En annan fråga:
Hur gör jag om jag vill ändra bildstorleken dynamiskt? När jag har hämtat bilden och presenterat den i \<asp:image id=img\> vill jag minska bilden enligt följande.

if (imageHeight \> imageWidth) {
    if (imageHeight \> 90) imageHeight = 90;
    if (imageWidth \> 60) imageWidth = 60;
}
else {
    if (imageWidth \> 125) imageWidth = 125;
    if (imageHeight \> 90) imageHeight = 90;
}

img.Height = imageHeight;
img.Width = imageWidth;

Jag vill inte spara den hämtade bilden i filsystem och på så sätt ta reda på storleken. 

Mvh,
  Naz

Permalänk: https://www.webforum.nu/p/1125033

## #4 — renholm, 2003-08-01T11:00Z

Ändra storlek på den i visabild.aspx.
<http://aspnet.4guysfromrolla.com/articles/012203-1.aspx>

Permalänk: https://www.webforum.nu/p/1125045

## #5 — Naaz, 2003-08-01T11:46Z

Jag blev inte ett dugg klokare. Den antar att man sparar ner filen. Men det gör inte mitt program. Mitt program hämtar bilden (byte\[\]) från databasen och representerar den i \<asp:image\> utan att spara den nånstans. 

Jag förstår fortfarande inte:
1) Hur jag får reda på storleken på bilden i databasen
2) Hur jag talar om för \<asp:image att width=125 och height=90 (tex).

Jag vill inte mellanlagra filen nånstans efter att jag har hämtat den från databasen. Går det att på nåt sätt utnyttja bilddata (byte\[\]) och skapa en Image eller nåt?

/Förvirrad

Permalänk: https://www.webforum.nu/p/1125067

## #6 — fredrik, 2003-08-01T11:50Z

Hur ser din befintlig kod i "visabild.aspx" ut nu?

För att ändra storleken antar jag att du får läsa in bilden till ett Image-objekt och sen ändra storleken på det innan du skickar ut det till klienten igen...

...men visa din kod först...

Permalänk: https://www.webforum.nu/p/1125071

## #7 — Naaz, 2003-08-01T11:57Z

På första sidan (där bilden ska visas) har jag följande: 

\<asp:image id="imgNews" runat="server" ImageUrl="visabild.aspx?ID=42"\>\</asp:image\>

I visabild.aspx har jag följande kod:

int id = Convert.ToInt32(this.Request.QueryString\["ID"\]);
DataSet ds = getImage(id)		
ds.EnforceConstraints = false;

if (ds.Tables\[0\] != null && ds.Tables\[0\].Rows.Count \> 0) {
   DataRow dataRow = ds.Tables\[0\].Rows\[0\];
   string fileType = ((string)dataRow.ItemArray.GetValue(2)).ToLower();			
   byte\[\] fileData = (byte\[\]) dataRow.ItemArray.GetValue(5);

   Response.ContentType = "image/" + fileType;
   Response.BinaryWrite(fileData);
}

Jag ser bilden på sidan, men kan inte göra lämplig resize på bilden. 

/Naz

Permalänk: https://www.webforum.nu/p/1125076

## #8 — renholm, 2003-08-01T12:13Z

Ungefär så här:

```
MemoryStream stream = new MemoryStream(image); // image är en byte[]

Image img = Image.FromStream(stream);
Image newimg = img.GetThumbnailImage(width, height, null, System.IntPtr.Zero);

newimg.Save(Response.OutputStream, ImageFormat.Gif)
```

Permalänk: https://www.webforum.nu/p/1125082

## #9 — Naaz, 2003-08-01T12:16Z

Tack :-) Nu funkar det!

Permalänk: https://www.webforum.nu/p/1125086

## #10 — Naaz, 2003-08-01T14:12Z

Ännu en fråga: 

Varför blir kvaliteten så mycket sämre när man använder ovanstående variant?

/Naz

Permalänk: https://www.webforum.nu/p/1125186

## #11 — renholm, 2003-08-01T15:33Z

Kan bero på att GIF konverteringen är inställd på låg kvalité, testa med png eller annat format och se om det blir bättre.

Permalänk: https://www.webforum.nu/p/1125228

## #12 — Naaz, 2003-08-11T15:46Z

Nu är det en ny fråga på G. 
Tidigare så gällde min fråga att visa bilder som var sparade i databasen. Nu gäller frågan övrig dokument (word, html, pdf mm).

Dessa filer finns också sparade i databasen. När min aspx sida laddas upp visar jag en lista med länkar med namnen på alla filer som finns sparade i databasen. När användaren klickar på en av länkarna vill jag visa filen (word, IE, acrobat reader eller annat lämpligt). Hur gör jag? Jag får en byte\[\] från databasen. Ska jag använda memorystream här också? Hur gör jag då för att visa filen?

Mvh,
  Naz

Permalänk: https://www.webforum.nu/p/1133612

## #13 — renholm, 2003-08-11T17:11Z

Response.BinaryWrite(dinbyte\[\]);

Sedan måste du även ändra Response.ContentType till ett lämpligt värde för varje dokument.

Permalänk: https://www.webforum.nu/p/1133647

## #14 — Naaz, 2003-08-11T18:05Z

Tack! :-) Jag hade skrivit fel på några "contenttype". Men mitt program funkar inte för pdf. Jag vet att filen inte är korrupt eller nåt (jag har testat det med ett annat program). 

För pdf-filer skriver jag följande: 

System.Web.HttpContext.Current.Response.ContentType = "Application/pdf";

men det funkar inte. 

Mvh,
  Naz

Permalänk: https://www.webforum.nu/p/1133669

## #15 — renholm, 2003-08-11T20:10Z

Jag hade problem med .pdf filer förut, alla filtyper förutom .pdf fungerade. Har dock inte lösningen här, kommer inte heller ihåg den. Ska se om jag kan få tag i den imorn.

Permalänk: https://www.webforum.nu/p/1133749

## #16 — Naaz, 2003-08-15T18:01Z

Hej Renholm. Lyckades du få tag i lösningen?
Mvh,
  Naz

Permalänk: https://www.webforum.nu/p/1138956

## #17 — renholm, 2003-08-15T23:10Z

Nix, imorn finns möjlighet att komma åt den så hör av mig då om jag fått tag i den.

Permalänk: https://www.webforum.nu/p/1139071

## #18 — renholm, 2003-08-16T12:35Z

Den fanns tyvärr inte tillgänglig nu, men om du visar koden för hur du lägger in i databasen samt för hur du hämtar så kanske jag kan minnas problemet.

Permalänk: https://www.webforum.nu/p/1139212

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/83197-visa-bilder-som-finns-sparade-i-databasen
