آپلود تصویر و فایل به صورت Drag and Drop و Ajax در Asp.Net Core
0 0

آپلود تصویر و فایل به صورت Drag and Drop و Ajax در Asp.Net Core


آپلود تصویر و فایل به صورت Drag & Drop و Ajax در Asp.Net Core

در پست های قبلی نحوه آپلود چندین تصویر و فایل به صورت ایجکس در Asp.Net Core مورد بررسی قرار دادیم. در ادامه این آموزش قصد داریم تا نحوه آپلود چندین تصویر و فایل به صورت Drag and Drop را مورد بررسی قرار دهیم.

ابتدا یک کنترلر به نام UploadDragDrop ایجاد کنید و سپس سازنده پیش فرض را به صورت زیر تغییر دهید

 private IHostingEnvironment hostingEnv;

        public UploadDragDropController(IHostingEnvironment env)
        {
            this.hostingEnv = env;
        }

در ادامه یک متد IActionResult به نام UploadFiles ایجاد و کدهای زیر را به آن اضافه کنید

[HttpGet]
        public IActionResult UploadFiles()
        {
            return View();
        }

        [HttpPost]
        public IActionResult UploadFiles(string str)
        {
            long size = 0;
            var files = Request.Form.Files;

            foreach (var file in files)
            {
                string filename = hostingEnv.WebRootPath + $@"\uploadedfiles\{file.FileName}";
                size += file.Length;
                using (FileStream fs = System.IO.File.Create(filename))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }
            }
            string message = $"{files.Count} file(s) /{ size} bytes uploaded successfully!";
            return Json(message);
        }

حالا یک ویو برای اکشن متد بالا ایجاد کنید و کدهای آن را به صورت زیر تغییر دهید

@{
    ViewData["Title"] = "آپلود تصویر و فایل";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>UploadFiles</h2>

<form method="post" enctype="multipart/form-data">
    <div id="fileBasket" class="filebasket" style="background: gray; height: 100px; width: 100px;">
        Drag-n-Drop files here.
    </div>
    <br />
    <img id="progress" src="~/Images/ajax-loader.gif" />
</form>

برای آپلود فایل به صورت ایجکس و Drag & Drop از jquery استفاده می کنیم.

@section Scripts{
    <script type="text/javascript" language="javascript">
        $(document).ready(function () {

            $("#progress").hide();

            $("#fileBasket").on("dragenter", function (evt) {
                evt.preventDefault();
                evt.stopPropagation();
            });

            $("#fileBasket").on("dragover", function (evt) {
                evt.preventDefault();
                evt.stopPropagation();
            });

            $("#fileBasket").on("drop", function (evt) {
                evt.preventDefault();
                evt.stopPropagation();
                
            });

        $("#fileBasket").on("drop", function (evt) {
            evt.preventDefault();
            evt.stopPropagation();
            var files = evt.originalEvent.dataTransfer.files;
            var fileNames = "";
            if (files.length > 0) {
                fileNames += "در حال آپلود <br />";
                for (var i = 0; i < files.length; i++) {
                    fileNames += files[i].name + "<br />";
                }
            }
            $("#fileBasket").html(fileNames);

            var data = new FormData();
            for (var i = 0; i < files.length; i++) {
                data.append(files[i].name, files[i]);
            }
            $.ajax({
                type: "POST",
                url: "/UploadDragDrop/UploadFiles",
                contentType: false,
                processData: false,
                data: data,
                success: function (message) {
                    $("#fileBasket").html(message);
                },
                error: function () {
                    $("#fileBasket").html
                        ("خطا در آپلود فایل!");
                },
                beforeSend: function () {
                    $("#progress").show();
                },
                complete: function () {
                    $("#progress").hide();
                }
            });
        });

        });

    </script>
}

 

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net Core
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۴ آذر ۱۳۹۶
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران مهمان
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha