دسته بندی ها
16:58 1398/12/27

ذخیره عکس در بانک به صورت باینری

مشخصات سوال کننده :
کاربر : hossein1244     امتیاز کاربر : 9     رتبه کاربر : 72
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 4124
پاسخ دهنده : pedram_khan 21:49 1398/12/29

نحوه ذخیره عکس در دیتابیس توسط سی شارپ

در Sql Server

برای ذخیره عکس در دیتابیس شما باید عکس رو به صورت یک فایل در دیتابیس Sql server ذخیره کنید. برای این کار توی دیتابیس و در جدولی که میخواید فایل (یا همون عکس) رو ذخیره کنید یک فیلد از نوع image تعریف کنید. این DataType برای نگهداری اطلاعات به صورت باینری استفاده میشه. در واقع برای ذخیره سازی عکس در دیتابیس باید ابتدا عکس شما تبدیل به یک آرایه باینری بشه و بعد از اون در دیتابیس ذخیره بشه.

در سی شارپ

خب حالا باید عکس خودتون رو در سی شارپ یا همون Asp به یک آرایه باینری تبدیل کنید. برای انجام این کار می تونید از کلاس FileStream استفاده کنید

 

    FileStream fs_image = new FileStream(ImageName, FileMode.Open, FileAccess.Read);
    byte[] imgByteArr = new byte[fs_image.Length];
    fs_image.Read(imgByteArr, 0, Convert.ToInt32(fs_image.Length));
    fs_image.Close();

با استفاده از کدهای بالا ابتدا عکس رو دریافت کردیم و سپس به یک آرایه از نوع byte تبدیل کردیم. حالا شما میتونید imgByteArr رو در دیتابیس ذخیره کنید.

 

با استفاده از کدهای بالا می تونید عکس رو تبدیل به یک آرایه باینری کنید و سپس در دیتابیس ذخیره کنید. توی این لینک هم در همین مورد اطلاعاتی وجود داره.

به این پاسخ امتیاز بدهید    1
امتیاز: 277 رتبه: 6
پاسخ دهنده : hossein1244 00:16 1399/01/01

 ممنون از پاسخگویتون مشکل الان اینجاست از veiw به controller عکس رو چطور ارسال کنم.

در MVC میشد از HttpPostedFileBase ولی core نمیشه استفاده کرد.

اگر جایگزین روشی هست ممنون میشم بگید چطوری هست

خودم از هر روشی که میرم خطا میده

ویرایش شده در جمعه 1 فروردین 1399 ساعت 00:28:22
به این پاسخ امتیاز بدهید    0
امتیاز: 9 رتبه: 72
پاسخ دهنده : fateme 18:04 1399/01/06

در Asp.net core  شما می تونید توسط اینترفیس IFormFile هر نوع فایلی رو از سمت وی به سمت کنترلر ارسال کنید. برای این کار این لینک رو مطالعه کنید

به این پاسخ امتیاز بدهید    1
امتیاز: 1617 رتبه: 2
پاسخ دهنده : hossein1244 23:06 1399/01/19

ممنون میشم راهنمایی کنید در سمت کنترلر IFormFile رو درون دیتابیس ذخیره کنم؟

به این پاسخ امتیاز بدهید    0
امتیاز: 9 رتبه: 72
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود