2017-03-11 9 views
5

मैं एएसपी.नेट कोर (एमवीसी 6) ईएफ विजुअल स्टूडियो का उपयोग कर एक छोटे ब्लॉग पर काम कर रहा हूं। मुझे डेटाबेस में छवियों को सहेजने का तरीका खोजने में परेशानी है। मैंने IFormfile के बारे में पढ़ा है लेकिन मुझे वास्तव में समझ में नहीं आता कि इसके बारे में कैसे जाना है, मैं अटक गया हूं। मैं इसके लिए नया हूं और थोड़ा सा मदद करना पसंद करूंगा।ASP.NET कोर का उपयोग कर छवियों को डेटाबेस में कैसे सहेजना है?

मैं छवि को उस पोस्ट में सहेजना चाहता हूं जिसे मैं बना रहा हूं (उसी रूप में)। इसलिए, मैं इसे पोस्टआईडी में सहेजना चाहता हूं। तो मुझे छवि को प्रदर्शित करने में सक्षम होना चाहिए, मैं यह कैसे कर सकता हूं? मुझे पता है कि पूछने के लिए बहुत कुछ है, लेकिन मुझे नहीं पता कि कहां बारी है। यदि आपके पास कोई अच्छी टिप्स या विचार हैं तो लिंक भेजने के लिए स्वतंत्र महसूस करें।

अग्रिम धन्यवाद!

+0

का आनंद लें डेटाबेस में फ़ाइलों को सहेजना अच्छा नहीं है, आपका डेटाबेस बहुत तेज़ी से हो सकता है, जो बैक अप और समस्याग्रस्त पुनर्स्थापित करता है। –

उत्तर

0

आप छवि से दृश्य को सहेजने के लिए IFormFile का उपयोग कर सकते हैं। नीचे नमूना कोड है।

public class UserProfileViewModel 
    { 
     public string UserName { get; set; } 
     public IFormFile UploadedImage { get; set; } 
     public string ImageUrl { get; set; } 
    } 

ध्यान में रखते हुए बस IFormFile संपत्ति के साथ यह बाँध तरह:

var filename = ContentDispositionHeaderValue 
            .Parse(user.UploadedImage.ContentDisposition) 
            .FileName 
            .Trim('"'); 
        filename = Path.Combine(webRoot, "/Content/UserProfile/", [email protected]"\{filename}"); 
        if (Directory.Exists(webRoot + "/Content/UserProfile/")) 
        { 
         using (FileStream fs = System.IO.File.Create(filename)) 
         { 
          user.UploadedImage.CopyTo(fs); 
          fs.Flush(); 
         } 
        } 
model.ImageURL = "~/Content/Brands/" + user.UploadedImage.FileName; 
2

आप इस उपयोगी अगर मिल सकता है:

<img src="@Model.ImageUrl" alt="User Logo" asp-append-version="true" /> 
<input type="file" asp-for="UploadedImage" /> 

अपने नियंत्रक में आप जैसे सर्वर पर फ़ाइल को बचाने की जरूरत आपको डेटाबेस में सहेजने की जरूरत है। यह https://www.mikesdotnetting.com/article/259/asp-net-mvc-5-with-ef-6-working-with-files के एक संशोधन किया गया और k7Boys से इनपुट के बहुत सारे यहाँ का जवाब MVC 6 HttpPostedFileBase?

<input type="file" name="Image" id="Imageinput"> 

ब्लॉग औसत वर्ग Img क्षेत्र की तरह होनी चाहिए;

public int BlogId{ get; set; } 
    ... 
    public byte[] Img{ get; set; } 

नियंत्रक;

public async Task<IActionResult> Create([Bind("BlogId,...Img")] Blog blog t, IFormFile Image) 
    if (ModelState.IsValid) 
     { 
      if (Image!= null) 

      { 
       if (Image.Length > 0) 

       //Convert Image to byte and save to database 

       { 

        byte[] p1 = null; 
        using (var fs1 = Image.OpenReadStream()) 
        using (var ms1 = new MemoryStream()) 
        { 
         fs1.CopyTo(ms1); 
         p1 = ms1.ToArray(); 
        } 
        Blog.Img= p1; 

       } 
      } 

      _context.Add(client); 
      await _context.SaveChangesAsync(); 

      return RedirectToAction("Index"); 
     } 

मुझे यहां आने के लिए कुछ घंटे लगे। अब छवियों को देखने में काम करने पर काम करना, मुझे यकीन है कि यह जटिल नहीं होगा।

संबंधित मुद्दे