1
0
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"]
در کدهای بالا کار خاصی انجام ندادیم و فقط یک فرم برای آپلود ایجاد کردیم.
نظر / سوال