Asp.Net Core 3.1 MVC प्रोजेक्ट में फ़ोटो कैसे अपलोड करें? [डुप्लीकेट]
Dec 07 2020
Asp.Net Core 3.1 MVC मेरे प्रोजेक्ट में , उपयोगकर्ता को एक फोटो अपलोड करने की आवश्यकता है और मैं फोटो को wwwroot / database के अंतर्गत रखना चाहता हूं। डेटाबेस में, केवल फोटो के लिए पथ की आवश्यकता होती है, लेकिन हर बार मेरी IFromfile ऑब्जेक्ट शून्य के रूप में आती है। अभी से धन्यवाद
जवाब
Yinqiu Dec 07 2020 at 16:21
आप इसे निम्न चरणों के साथ कर सकते हैं।
एक मॉडल बनाएँ
Image
:public class Image { public int Id { get; set; } public string Path { get; set; } }
Images
अपने अंतर्गत एक फ़ोल्डर बनाएँwwwroot
सूचकांक दृश्य कोड:
@model Image <form asp-controller="Home" asp-action="Index" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" class="form-control" /> <input type="submit" value="submit" id="sub" /> </form>
नियंत्रक:
public class HomeController : Controller { private readonly ApplicationDbContext _context; private readonly IWebHostEnvironment _hostingEnvironment; public HomeController(ApplicationDbContext context, IWebHostEnvironment hostingEnvironment) { _context = context; _hostingEnvironment = hostingEnvironment; } public IActionResult Index() { return View(); } [HttpPost] public async Task<IActionResult> IndexAsync(Image image,IFormFile uploadFile) { if (uploadFile != null && uploadFile.Length > 0) { var fileName = Path.GetFileName(uploadFile.FileName); var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images", fileName); image.Path = filePath; _context.Images.Add(image); _context.SaveChanges(); using (var fileSrteam = new FileStream(filePath, FileMode.Create)) { await uploadFile.CopyToAsync(fileSrteam); } } return View(); }
परिणाम:
