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.
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"/>
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.
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:
Hur jag får reda på storleken på bilden i databasen
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?
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...
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?
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).
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.
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.
261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e