ذخیره عکس در فایل در mvc.net
سلام
می خواهم یک عکس را در mvc.net آپلود کنم و در یک فایل ذخیره کنم و همچنین بتوانم عکس مورد نظر را فایل بخوانم و درتگ img نمایش بدهم (بدون انکه در جدول ثبت کنم).
گشتم فقط ثبت در بانک را پیداکردم لطفا راهنمای بفرمایید
باتشکر
1 پاسخ
سلام، وقت بخیر
شما وقتی عکسی رو آپلود می کنید می تونید برای ذخیره یک نام یکتا (مثل Guid) ایجاد کنید و فایل رو با اون نام ذخیره کنید. اما در هر صورت باید اطلاعات فایل آپلودی رو روی Database ذخیره کنید، مثل نام فایل، نوع فایل، اندازه فایل و سایر اطلاعاتی که مورد نیاز هست. برای اینکار یک جدول داخل بانک ایجاد کنید با ساختار زیر:
UploadedFiles Id: uniqueidentifier (PK) Filename: nvarchar(1000) ContentType: nvarchar(100) Filesize: int
جدول بالا ساده ترین حالتی هست که اطلاعات فایل رو ذخیره می کنید. تو قدم بعدی زمان آپلود فایل یک Guid ایجاد کنید، فایل رو با اون نام ذخیره کنید و داخل یک رکورد برای فایل آپلود شده با Guid ای که نام فایل هست اضافه کنید:
public ActionResult UploadFile(HttpPostedFileBase file)
{
var fileId = Guid.NewGuid();
var folder = Server.MapPath("~/Files");
var filePath = System.IO.Path.Combine(folder,fileId);
file.SaveAs(filePath);
dbContext.UploadedFiles.Add(new UploadedFile
{
Id = fileId,
Filename = file.FileName,
ContentType = file.ContentType,
FileSize = file.ContentLength
});
dbContext.SaveChanges();
}
به صورت زیر می تونید فایل رو خارج از بانک ذخیره کنید، اما اطلاعات فایل داخل بانک باید ذخیره بشه.