Archief - ASP.NET MVC + Toon images vanuit mysql database

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

faxxR

Legacy Member
Hallo,

ik heb een vraag omtrent het tonen van images opgeslagen in database.
In mijn mysql database heb ik een tabel "deliverables" met daarin o.a. "deliverable_image", alsook FK "afstudeerricthing_id". Nu wil ik bepaalde images tonen afh. van de "afstudeerichting_id".

Dit is mijn Controller: (gewoon als test geef ik afstudeerrichtingid 2 mee)
Code:
public ActionResult Index()
{
     var allimages = repository.GetImages(2); // 2 -> afstudeerrichting id
     return View();
}

Mijn methode in repository:
Code:
public IQueryable<byte[]> GetImages(int afstudeerrichtingid)
{
     return from deliverable in entities.deliverables
              where deliverable.afstudeerichting_id.Equals(afstudeerrichtingid)
              select deliverable.deliverable_image;
}

Mijn vraag is nu hoe kan ik alle images tonen in mijn View?
Kan iemand mij hier op weg helpen?

Alvast superbedankt!
faxxR

woony

Legacy Member
wat sla je op in je databank? de url van de images?

dan uw allimages meegeven aan uw view, en dan in uw view er doorheen loopen...

faxxR

Legacy Member
Ik sla de image op als byte[] in mijn databank. Het veld "deliverable_image" is in mijn databank van het type "blob".

Tyfius

Legacy Member
Even ruwweg uit het hoofd maar je zou er mee aan de slag moeten kunnen.

In uw controller maak je een functie aan die een ActionResult terug geeft:

Code:
public ActionResult ShowImage(int afstudeerrichtingid)
{
    byte[] data =  GetImages(int afstudeerrichtingid);
    return File(data, "image/png");
}

In je view maak je dan een img tag aan:

Code:
<img src="@Url.Action("ShowImage", "Home", new { afstudeerrichtingid = 1 })" />

Enkele opmerkingen omdat het uit het hoofd is:
  • Ik ga er voorlopig van uit dat uw GetImages() functie een byte[] returned.
  • Ik geef hier image/png mee, dat kan je vervangen door image/jpg waar nodig. Het beste is om hier het type formaat van jouw afbeeldingen mee te geven.
  • Vervang Home door de naam van jouw controller
  • En geef natuurlijk de correcte afstudeerrichtingid mee

SomeDude

Legacy Member
faxxR zei:
Ik sla de image op als byte[] in mijn databank. Het veld "deliverable_image" is in mijn databank van het type "blob".

Is er een specifieke reden dat je ze in DB stored? Want gewoon als file is eenvoudiger ...

woony

Legacy Member
SomeDude zei:
Is er een specifieke reden dat je ze in DB stored? Want gewoon als file is eenvoudiger ...

inderdaad, gewoon uw url bijhouden. Of zelfs helemaal niet in de database, een dedicated folder die je doorloopt is mij uit ervaring al vaak de snelste oplossing geweest
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan