A képek megjelenítését az adatbázisból közvetlenül - megállapítsák httphandler
De miért egy kiegészítő fájlt a képeket, ha az ASP.NET egy ilyen csodálatos eszköz a lekérdezés hogyan HttpHandler. )
Mi a HttpHandler és hogy néz ki? Tény, hogy ez ugyanaz HttpHandler ISAPI szűrő, amely kezeli a http kéréseket. Bármilyen kérés, hogy jön egy ASP.NET webes alkalmazás, amely előbb-utóbb feldolgozni egyik HttpHandlerov, és nincs szerzés körül. Néhány HttpHandlery adási lekérdezésére más osztályokba (pl nevű osztály oldalak), míg mások maguk feldolgozza a kérelmet, és visszatér az eredményt a kliens. De ebben az esetben nem számít. A lényeg az, hogy a Microsoft lehetőséget biztosított a fejlesztők egyszerűen megírják HttpHandlery.
Mi továbbra is vizsgálja a probléma - kezd a kép az adatbázisból. Hagyja, hogy az adatbázist egy asztal képe felépítése a következő:
Azt akarjuk, hogy ki ez a kép adatbázis tekintetében egyedi azonosítót (id mező értékét). Ha ez bekövetkezik, nem akarjuk, hogy bármilyen további fájlokat. És, mint említettem, ez nem szükséges - mindent meg lehet tenni a segítségével HttpHandler.
Osztályba lehet nyilvántartásba vett HttpHandler, akkor kell csak észre System.Web.IHttpHandler felület, amely egy get tulajdon és az egyik módszer. Próbáljunk csinálni :)
Kezdjük az osztály neve:
Aztán rájövünk IsReusable tulajdonság, amely azt jelzi, hogy az osztály nélkül hívható az újraindítását
Végül térjünk vissza a legérdekesebb - a végrehajtás ProcessRequest módszer, amely elvégzi a tényleges feldolgozást a kérelmet. Hadd emlékeztessem önöket, hogy szeretnénk az egyedi azonosítók a kép vissza a kép maga:
Kap egy hivatkozás a kérés és válasz tárgyak kérelmet.
Kapunk az érték egy egyedi azonosító kép
Hozzon létre egy kapcsolatot az adatbázis és megadja a kép egyedi azonosítója
Nem azért vagyok itt, hogy ne ellenőrizze a létezését feljegyzések, de a valóságban ez persze nem árt :)
Állítsa be a helyes ContentType
És írni a tartalmát a képet az ügyfélnek.
Ez minden - mi HttpHandler létre. Továbbra is csatlakoztatni egy webes alkalmazás, és készen áll a működésre.
Csatlakoztatásához HttpHandlerov használt szakasz
Ennek alapján hoztunk létre HttpHandler csatlakozni a webes alkalmazás. Átírása az összeállított szerelvényt a bin alkönyvtárához webes alkalmazások, és adjunk hozzá a konfigurációs fájlban a részben
Az emberi nyelv ebben a sorban a következőképpen magyarázható: ha photo.aspx fájl kérés a kérelem feldolgozásához HttpHandlerom PictureHandler.PictureHandler található a szerelvény PictureHandler. Figyeljünk - tényleg photo.aspx fájlt a webes alkalmazás nem létezik, de ha megpróbálja, hogy kérje a fájl photo.aspx a megfelelő egyedi azonosítóval kép - ezt a képet vissza kell adni.
Ez minden. Most bárhol megjelenik a webes alkalmazás kép id = 10 lehet használni
.PS. Ne próbálja meg egy példát, hogy képeket Alkalmazottak Northwind adatbázis tábla szerint - ez még mindig nem működik :) Ebben a táblázatban nem tárolt képeket, és OLE objektumokat.