1
0
آپلود چند فایل و تصویر به طور همزمان در Asp.Net Core
آپلود چند فایل و تصویر به طور همزمان در Asp.Net Core
در این پست قصد داریم تا نحوه آپلود چندین فایل و تصویر را به صورت همزمان در Asp.Net Core را مورد بررسی قرار دهیم.
ابتدا کنترلری به نام UploadFileController ایجاد کنید و کدهای آن را به صورت زیر تغییر دهید
using System.Collections.Generic; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Net.Http.Headers; namespace MvcAspCore.Controllers { public class UploadFileController : Controller { private IHostingEnvironment hostingEnv; public UploadFileController(IHostingEnvironment env) { // for upload File this.hostingEnv = env; } #region UploadFiles public IActionResult UploadFiles() { return View(); } [HttpPost] public IActionResult UploadFiles(IList<IFormFile> files) { long size = 0; foreach (var file in files) { var filename = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); filename = hostingEnv.WebRootPath + $@"\{filename}"; size += file.Length; using (System.IO.FileStream fs = System.IO.File.Create(filename)) { file.CopyTo(fs); fs.Flush(); } } ViewBag.Message = $"{files.Count} file(s) / { size}bytes uploaded successfully!"; return View(); } #endregion } }
در اینجا ابتدا تنظیمات اولیه در سازنده کنترلر انجام دادیم و سپس یک متد از نوع IActionResult به نام UploadFiles ایجاد کردیم و برای آپلود چندین فایل از یک foreach برای خواندن فایل های دریافتی از سمت کاربر استفاده کردیم.
کدهای View
حال یک view برای متد UploadFiles ایجاد کنید و کدهای آن را به صورت زیر تغییر دهید
@{ ViewData["Title"] = "آپلود فایل"; } <form asp-action="UploadFiles" asp-controller="UploadFile" method="post" enctype="multipart/form-data"> <input type="file" name="files" multiple/> <input type="submit" value="آپلود"/> </form> @ViewData["ViewBag.Message"]
در کدهای بالا کار خاصی انجام ندادیم و فقط یک فرم برای آپلود ایجاد کردیم.
نظر / سوال