PDA

View Full Version : ذخیره عکس در دیتابیس



z.gitaro
دوشنبه 14 بهمن 1392, 09:39 صبح
میخوام وقتی کاربر ثبت نام میکنه عکسش هم تو دیتابیس ذخیره شه چجوری باید اینکارو انجام بدم؟

mehrdad.ghorbaniyan
دوشنبه 14 بهمن 1392, 09:53 صبح
سلام.میتونی آدرس عکسو ذخیره کنی که خیلی راحته
میتونی خود عکسو ذخیره کنی که خیلی دردسر داره.من یه بار این کارو انجام دادم با بدبختی تونستم یه عکس ذخیره کنم.باید به تبدیل بشه و....

ali_autumnal
دوشنبه 14 بهمن 1392, 10:32 صبح
یه فیلد از نوع bool در جدول کاربر تعریف کنید. اگر کاربری عکس خود رو آپلود کرد این فیلد رو به true تغییر دهید. و عکس کاربر رو در یه مسیر ثابت با کدکاربری ذخیره کنید

سپس زمانی که می خواهید عکس رو نمایش بدهید اگر این فیلد true بود تصویر شخص رو نمایش میده در غیر اینصورت تصویر default نمایش داده شود.

جهت ذخیره تصویر:
کدهای سمت کاربر:


@using (Html.BeginForm("ActionName","ControllerName",FormMethod.Post,new { enctype = "multipart/form-data" }))
{
@Html.HiddenFor(m=>Model.UserId)
<input type="file" id="file" name="file" />
<input type="submit" />
}


کدهای سمت سرور:


[HttpPost]
public ActionResult UploadImage(HttpPostedFileBase file,int UserId)
{
var dir = new DirectoryInfo(HttpContext.Server.MapPath("~/Content/UserImages"));



file.Save(dir.FullName + "/" + UserId + ".jpg", ImageFormat.Jpeg);
return Content(fileName);
}

z.gitaro
دوشنبه 14 بهمن 1392, 12:40 عصر
کدهایی که در کنترلر نوشتم:
public ActionResult Detail(int? id, RegisterVM registerVM)
{
using (var db = new BussinessManagmentEntities())
{
if (ModelState.IsValid)
{

var userID = id;
Tbl_SystemUsers Sysuser;
if (userID != null && userID > 0)
{
var user = db.Tbl_SystemUsers.FirstOrDefault(a => a.SystemUserID == userID);
if (user == null)
{
return RedirectToAction("Index", "Home");
}
Sysuser = user;
ViewBag.flagUpdate = true;
}
else
{
Sysuser = new Tbl_SystemUsers();
db.Tbl_SystemUsers.Add(Sysuser);
registerVM.Active =Convert.ToBoolean(false);
ViewBag.flagSave = true;
}

Mapper.Map(registerVM, Sysuser);
Sysuser.LastLoginDate = DateTime.Now;

db.SaveChanges();
return View("Confirm");
}
else
{
return View(registerVM);
}
}
حالا چجوری عکسی رو که کاربر اپلود کرده به ابن اکشن پاس بدم؟باید یه ورودی دیگه داشته باشه؟

Cybersilent
سه شنبه 15 بهمن 1392, 23:43 عصر
یک راه حل دیگه:
عکس رو با نام شماره Id رکورد شخص در یک آدرس معین ذخیره کنید.
برای نمایش عکس هم برید به همون آدرس و بر اساس Id رکورد مورد نظر، عکس رو نمایش بدید.