Site icon Tutexchange

How to Uploading multiples files in ASP.NET CORE using DropZone.js


In this article, we are going to learn how to upload a file just drag and dropping in the zone in core in simple steps

We are going to use one of the popular JavaScript drag-and-drop libraries for file upload in this article.

Table of Contents

Let’s Get Started

Creating Project

We are going to create a new application, as shown below.

Next, we are going to set Project Name DemoDropZone and location. In the last part, we will choose the .Net Core framework and ASP.NET Core Version 6.0 as the framework for the application and a few advanced settings such as configuring HTTPS and enabling docker; we are not going to enable docker settings for this project.

Now finally, click on create button to create a project.

Project structure

The project structure is generated according to the configuration.

After creating the project next, we are going to Controller and View.

Adding Controller and View

  public IActionResult UploadFiles()
      return View();

Introduction to Dropzone.js JavaScript Library

Dropzone.js is one of the most popular drag-and-drop JavaScript libraries. It is free, fully open source, and makes it easy for you to handle dropped files on your website.

After Introduction now let us Use it in a real scenario for doing that, we have to download the script and .css of Dropzone js.

Links to Download Scripts

CDN Links

If you want to use CDN then you can directly use the link given below.

<script src=""></script>

<link rel="stylesheet" href="" type="text/css" />

After downloading the files I added them to the js folder which is inside the wwwroot folder.

Next, we are going to add Script and CSS on View and Design view for using Dropzone.

UploadFiles View

In this part, we have added script and CSS reference on View.

@section Scripts{
<link href="~/js/dropzone/dropzone.min.css" rel="stylesheet" />
<script src="~/js/dropzone/dropzone.min.js"></script>

The added Form tag is encoded as “multipart/form-data” and also added div tag is above the form tag and assigned id as “demo-upload”.

Code Snippet of UploadFiles View

<div class="col-md-12">
    <div class="card">
        <div class="card-header">
            <h3 class="card-title">Files Uploads</h3>
        <div class="card-body register-card-body">
            <div class="form-row">
                <div class="col-md-12" id="dropzone">
                    <form asp-controller="DemoUpload" autocomplete="off" asp-antiforgery="true" class="dropzone"
                          id="demo-upload" enctype="multipart/form-data" asp-action="UploadFiles" method="post">
                        <div class="text-danger" asp-validation-summary="ModelOnly"></div>
                        <div class="form-row">
        <div class="card-footer">
            <button type="button" id="btnupload" class="btn btn-success">Upload Files</button>
            <a class="btn btn-danger" asp-controller="DemoUpload" asp-action="UploadFiles">Clear</a>

@section Scripts{
<link href="~/js/dropzone/dropzone.min.css" rel="stylesheet" />
<script src="~/js/dropzone/dropzone.min.js"></script>

The View of Dropzone File Upload

Script of DropZone

In this Dropzone, we have various options to configure it such as Maxfilesize, MaxFiles, and Accepted Files.

    Dropzone.autoDiscover = false;
    $(function () {
        var dz = null;
            autoProcessQueue: false,
            paramName: "File Upload",
            maxFilesize: 5, //mb
            maxThumbnailFilesize: 1, //mb
            maxFiles: 5,
            parallelUploads: 5,
            acceptedFiles: ".jpeg,.png,.jpg",
            uploadMultiple: true,
            addRemoveLinks: true,
            init: function () 
                dz = this;
                $("#btnupload").click(function () 
                    $(this).attr("disabled", "disabled");
            success: function (file) 
                var preview = $(file.previewElement);
                preview.addClass("dz-success text-success");
                setTimeout(function () 
                }, 2000);

            queuecomplete: function () 
                alert('Files Uploaded Successfully!');
            dictDefaultMessage: "You can drag and drop your images here.",
            dictRemoveFile: "File Remove"

Now we have the script read next we need to call the action method where we can post these files and store them in the application folder.

Storing Posted Files in a Folder

In this part, we will get all Posted files in IFormCollection which we are going to iterate and store in the folder “UploadedFiles” which is located in the wwwroot folder of the application.

        public async Task<IActionResult> UploadFiles(IFormFile filedata)
            var files = HttpContext.Request.Form.Files;
            if (files.Any())
                foreach (var file in files)
                    if (file.Length > 0)
                        //Getting FileName
                        var fileName = Path.GetFileName(file.FileName);
                        //Assigning Unique Filename (Guid)
                        var myUniqueFileName = Convert.ToString(Guid.NewGuid().ToString("N"));
                        //Getting file Extension
                        var fileExtension = Path.GetExtension(fileName);
                        // concatenating  FileName + FileExtension
                        var newFileName = String.Concat(myUniqueFileName, fileExtension);
                        await using var target = new MemoryStream();
                        await file.CopyToAsync(target);
                        var physicalPath = $"{new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "UploadedFiles")).Root}{$@"{fileName}"}";
                        string filePath = $"/UploadedFiles/{fileName}";
                        await using FileStream fs = System.IO.File.Create(physicalPath);
                        await file.CopyToAsync(fs);

                return Json(new { status = true, Message = "Files Uploaded Successfully!" });

            return View();

Let’s Run the application

Debug view of uploaded files

Uploaded files which are Stored in a folder


In this article, we have learned how to upload multiple files in ASP.NET CORE using DropZone.js in simple steps along with that we have also learned how to store it in an application folder.

DropZone.js is a good library javascript for doing multiple files.

Hope you Liked this Article Please share it if possible.

Download Source Code

Exit mobile version