View Full Version : سوال: نمایش عکس از دیتابیس درتگ img
EBRAHIMIEKOKDARAGHI
شنبه 29 فروردین 1394, 20:32 عصر
با سلام خدمت اساتید
چطور میشه یک عکس ذخیره شدن در دیتابیس رو دریک تگ img نمایش داد ؟
alireza_s_84
شنبه 29 فروردین 1394, 22:08 عصر
با سلام خدمت اساتید
چطور میشه یک عکس ذخیره شدن در دیتابیس رو دریک تگ img نمایش داد ؟
شما وقتی یک عکس رو واکشی میکنید اون رو بصورت آرایه ای از بایت ها در اختیارتون قرار میده حالا کار با این آرایه برای نمایش عکس بستگی به شما داره ، میتونید یک Action عمومی داشته باشید یا یک متد خصوصی که کار تبدیل آرایه رو به عکس براتون انجام بده.
نمونه ای از یک اکشن عمومی:
public ActionResult ShowImage(long id)
{
var model = dbContext.GetImage(id);
return File(model.Image, "image/jpg");
}
<img src="@Url.Action("ShowImage", new { Id = Model.Id })" />
niloo17
یک شنبه 30 فروردین 1394, 12:09 عصر
سلام
شما عکس را به صورت بایت در دیتابیس ذخیره کردید. در view مورد نظرتون کافیه از کد زیر استفاده کنید .
@{
var base64 = Convert.ToBase64String(Model.ByteArray);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}
<img src="@imgSrc" />
alireza_s_84
یک شنبه 30 فروردین 1394, 13:08 عصر
سلام
شما عکس را به صورت بایت در دیتابیس ذخیره کردید. در view مورد نظرتون کافیه از کد زیر استفاده کنید .
@{
var base64 = Convert.ToBase64String(Model.ByteArray);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}
<img src="@imgSrc" />
اصلا استفاده از این روش توصیه نمیشه.
ابتدا اینکه استفاده از روش کدگذاری Base64 برای نمایش عکس با محدودیت حجمی مواجهه و در مرورگرهایی مثل IE8 فقط حجم عکس میتونه 32 کیلوبایت باشه و در مرورگرهای جدید نیز تا حجم مشخصی میتونه باشه.
در این حالت عکس توی مرورگر کش نمیشه و اگر دوباره اون پیج درخواست بشه باید عکس دوباره دریافت بشه .
قراردادن اطلاعات کد شده عکس در صفحات HTML به شدت حجم خروجی نهایی رو افزایش میده و باعث تاثیر منفی رو کارایی سرور و حتی پردازش مرورگر میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.