توضیحات و دانلود

آپلود چندین فایل با استفاده از HTML5 در ASP.NET MVC
0 0
آپلود چندین فایل با استفاده از HTML5 در ASP.NET MVC

در این مقاله یک مثال ساده  نحوه آپلود چندین فایل با استفاده از HTML5 در ASP.Net MVC 5 توضیح خواهیم داد.

یکی از ویژگیهای HTML5 امکان آپلود چندین فایل  فراهم کرده و میتواند در ASP.Net MVC نیز استفاده شود.

View

 View زیر شامل یک عنصر HTML FileUpload، یک دکمه Submit و یک عنصر SPAN برای نمایش پیام است.

عنصر HTML FileUpload با یک ویژگی multiple = “multiple” در HTML5 افزوده شده  به منظور اجازه دادن به کاربر برای انتخاب چندین فایل همزمان.

فرم HTML با استفاده از روش Html.BeginForm که پارامترهای زیر را می پذیرد ایجاد شده است.

ActionName - نام اکشن در این مورد نام Index است.

ControllerName - نام Controller در این مورد نام  Home است.

FormMethod - روش فرم را یعنی GET یا POST مشخص می کند. در این مورد به POST تنظیم خواهد شد.

HtmlAttributes - این آرایه اجازه می دهد تا مشخصات بیشتری برای فرم مشخص کند. در اینجا ما باید از گزینه enctype = "multipart / form-data" که برای آپلود فایلها ضروری است استفاده کنیم.

@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style type="text/css">
        body
        {
            font-familyArial;
            font-size10pt;
        }
    </style>
</head>
<body>
    <div>
        @using (Html.BeginForm("Index""Home"FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            <span>Select File:</span>
            <input type="file" name="postedFiles" multiple ="multiple" />
            <hr />
            <input type="submit" value="آپلود" />
            <br />
            <span style="color:green">@Html.Raw(ViewBag.Message)</span>
        }
    </div>
</body>
</html>

 

فضای نام

شما باید نام فضای نام را وارد کنید.

using System.IO;

Controller

Index Action به طور پیش فرض از عملیات GET پشتیبانی می کند و از این رو برای انجام عملیات POST یک ActionResult اضافی ایجاد می کنیم که پارامتری را که مجموعه ای از نوع HttpPostedFileBase است را می پذیرد.

توجه : نام پارامتر HttpPostedFileBase و نام عنصر HTML FileUpload باید دقیقا  یکسان باشد، در غیر این صورت پارامتر HttpPostedFileBase  مقدارNULL خواهد بود.

ابتدا بررسی می شود که آیا پوشه (Directory ) وجود دارد یا نه بعد از آن دایرکتوری (پوشه) ایجاد شده است و سپس یک حلقه اجرا می شود و یک به یک  فایلها در دایرکتوری (پوشه) ذخیره می شوند.

در نهایت یک پیام با استفاده از ViewBag به کاربر  نمایش داده می شود.

public class HomeController : Controller
{
    // GET: Home
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
 
    [HttpPost]
    public ActionResult Index(List<HttpPostedFileBase> postedFiles)
    {
        string path = Server.MapPath("~/Uploads/");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
 
        foreach (HttpPostedFileBase postedFile in postedFiles)
        {
            if (postedFile != null)
            {
                string fileName = Path.GetFileName(postedFile.FileName);
                postedFile.SaveAs(path + fileName);
                ViewBag.Message += string.Format("<b>{0}</b> فایلها با موفقیت آپلود شدند.<br />", fileName);
            }
        }
 
        return View();
    }
}


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :