دسته بندی ها
19:50 1401/05/14

ارسال تصویر Base64 و نحوه ذخیره سازی آن در سرور

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

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2666
هوش مصنوعی

پاسخ هوش مصنوعی

برای ذخیره سازی تصویر Base64 در سرور با استفاده از ASP.NET Core، می توانید از مراحل زیر استفاده کنید:

1. تبدیل تصویر Base64 به باینری: ابتدا رشته Base64 را به یک آرایه بایتی تبدیل کنید. برای این کار می توانید از متد `Convert.FromBase64String` استفاده کنید.

string base64String = "data:image/png;base64,..."; // رشته Base64 خود را وارد کنید
string imageBase64 = base64String.Split(',')[1]; // جدا کردن header
byte[] imageBytes = Convert.FromBase64String(imageBase64);

2. ذخیره تصویر در سرور: پس از تبدیل به بایت، می توانید آن را در فایل سیستم ذخیره کنید یا در دیتابیس ذخیره کنید.

برای ذخیره به عنوان فایل:

string filePath = Path.Combine("path_to_save_image", "image.png");
await File.WriteAllBytesAsync(filePath, imageBytes);

برای ذخیره در دیتابیس، می توانید تصویر را به نوع داده مناسب در دیتابیس (مثلاً VARBINARY) تبدیل کنید و سپس آن را ذخیره کنید.

3. نمونه کد ارسال با استفاده از Ajax: اگر می خواهید تصویر را با استفاده از Ajax به سرور ارسال کنید، می توانید از کد زیر استفاده کنید:

$.ajax({
    type: "POST",
    url: "/your_api_endpoint",
    data: JSON.stringify({ imageData: base64String }),
    contentType: "application/json",
    success: function(response) {
        console.log("Image saved successfully", response);
    },
    error: function(xhr, status, error) {
        console.error("Error saving image", error);
    }
});

در این کد، تصویر Base64 به یک API ارسال می شود و می توانید در سرور آن را ذخیره کنید.

4. ذخیره سازی در روت سایت: برای ذخیره تصویر در یک مسیر مشخص در سرور، می توانید به سادگی مسیری را به عنوان تبدیل فایل به روش بالا مشخص کنید و سپس تصویر را در آن مسیر ذخیره کنید.

باتوجه به نیاز خاص خود، می توانید این مراحل را شخصی سازی کنید یا بهینه سازی نمایید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 21:39 1401/05/14

اگر تصویر شما به صورت Base64 دریافت میشه بهتره توی دیتابیس ذخیره بشه. نحوه ذخیره سازی هم که خیلی ساده هست چون Base64 یک رشته هست و کافیه همین رشته رو مثل یک رشته معمولی در دیتابیس ذخیره کنید.

 

نحوه تبدیل Base64 به تصویر و ذخیره در سرور در Asp.net Core

اما اگر قصد دارید که Base64 رو تبدیل به تصویر کنید و اون تصویر رو یک نام بهش بدید و نامش رو در دیتابیس ذخیره کنید و خود تصویر رو هم در wwwroot ذخیره کنید می تونید از کد زیر استفاده کنید :

public string UploadBase64AndConvertPicFunc(string base64ImageName, string path)
{
   var uploadpath = Path.Combine(_appEnvironment.WebRootPath, path);
   string imageName = Guid.NewGuid().ToString().Replace("-", "") + ".jpg";
   string imgPath = Path.Combine(uploadpath, imageName);
   byte[] imageBytes = Convert.FromBase64String(base64ImageName);
   File.WriteAllBytes(imgPath, imageBytes);
   return imageName;
}

در کد بالا پارامتر ورودی path مسیر ذخیره سازی تصویر شما در wwwroot می باشد و پارامتر با نام base64ImageName هم همان رشته base64 شما هست که قرار است به تصویر تبدیل شود. در نهایت هم نام تصویر برگردانده میشود.

ویرایش شده در جمعه 14 مرداد 1401 ساعت 21:41:25
به این پاسخ امتیاز بدهید    2
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود