Asp net core 6 web api how to download file to folder

Introduction

ASP.NET is a popular programming language used for building web applications. In this article, we will explore how to a file to a in an ASP.NET Core 6 Web API project.

Step 1: Create a Web API Project

To get started, let's create a new ASP.NET Core 6 Web API project. Open Visual Studio and “Create a new project.” the ASP.NET Core Web Application template and select the API project type. Give your project a name and click “Create.”


// ASP.NET Core 6 Web API project code

Step 2: the File Download Endpoint

Next, let's implement the file download endpoint in our Web API project. Open the “” folder and add a new controller class. Name it “FileController” and add the following code:


 Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourProject.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class FileController : ControllerBase
    {
        [HttpGet("download")]
        public IActionResult DownloadFile()
        {
            // Logic to download file to folder
            // ...

            return Ok();
        }
    }
}

Step 3: Implement the File Download Logic

Inside the “DownloadFile” action method, we need to implement the logic to download the file to a folder. Here's an example:


[HttpGet("download")]
public IActionResult DownloadFile()
{
    string filePath = "path/to/file.pdf";
    string folderPath = "path/to/folder";

    // Check if the file 
    if (!System.IO.File.Exists(filePath))
    {
        return NotFound();
    }

    // Create the folder if it doesn't exist
    if (!Directory.Exists(folderPath))
    {
        Directory.CreateDirectory(folderPath);
    }

    // Get the file name
    string fileName = Path.GetFileName(filePath);

    // Generate a unique file name to avoid conflicts
    string uniqueFileName = Guid.NewGuid().ToString() + "_" + fileName;

    // Combine the folder path and the unique file name
    string destinationPath = Path.Combine(folderPath, uniqueFileName);

    // Copy the file to the destination folder
    System.IO.File.Copy(filePath, destinationPath);

    return Ok();
}

Step 4: Test the File Download Endpoint

Now that we have implemented the file download logic, let's test the endpoint. Run the Web API project and use a tool like Postman to send a GET request to the following URL:

https://localhost:5001/api/file/download

If everything is set up correctly, the file should be to the specified folder.

Conclusion

In this article, we have learned how to download a file to a folder in an ASP.NET Core 6 Web API project. By following the outlined above, you can easily implement this functionality in your own projects.

Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Table of Contents