21.8 C
New York
Monday, August 25, 2025

The right way to add recordsdata utilizing minimal APIs in ASP.NET Core


  1. Launch the Visible Studio 2022 IDE.
  2. Click on on “Create new undertaking.”
  3. Within the “Create new undertaking” window, choose “ASP.NET Core Net API” from the checklist of templates displayed.
  4. Click on Subsequent.
  5. Within the “Configure your new undertaking” window, specify the title and site for the brand new undertaking. Optionally test the “Place resolution and undertaking in the identical listing” test field, relying in your preferences.
  6. Click on Subsequent.
  7. Within the “Further Info” window proven subsequent, choose “.NET 9.0 (Customary Time period Help)” because the framework model and uncheck the test field that claims “Use controllers,” as we’ll be utilizing minimal APIs on this undertaking.
  8. Elsewhere within the “Further Info” window, depart the “Authentication Kind” set to “None” (the default) and ensure the test bins “Allow Open API Help,” “Configure for HTTPS,” and “Allow Docker” stay unchecked. We gained’t be utilizing any of these options right here.
  9. Click on Create.

We’ll use this ASP.NET Core Net API undertaking to work with the code examples given within the sections under.

IFormFile and IFormFileCollection in ASP.NET Core

Within the current variations of ASP.NET Core, minimal APIs present help for importing recordsdata utilizing the IFormFile and IFormFileCollection interfaces. Whereas IFormFile is used to add a single file, IFormFileCollection is used to add a number of recordsdata. The next code snippet illustrates how one can add a single file utilizing IFormFile in your minimal API utility.


app.MapPost("/add", async (IFormFile file) =>
{
    var tempFile = Path.GetTempFileName();
    utilizing var fileStream = File.OpenWrite(tempFile);
    await file.CopyToAsync(fileStream);
});

Notice that the File.OpenWrite methodology accepts the trail to a file in your file system as a parameter and returns a FileStream occasion. As its title signifies, a FileStream object supplies a Stream for a file, that means a sequence of bytes.

Equally, the next piece of code reveals how one can add a number of recordsdata utilizing the IFormFileCollection interface.


app.MapPost("/upload_multiple_files", async (IFormFileCollection recordsdata) =>
{
    foreach (var file in recordsdata)
    {
        var tempFile = Path.GetTempFileName();
        utilizing var fileStream = File.OpenWrite(tempFile);
        await file.CopyToAsync(fileStream);
    }
});

Typically we’ll need to do extra with a file than merely add it. If we need to parse or manipulate the contents of a file [OK?], we are able to benefit from the StreamReader class. StreamReader is a high-level class, constructed on high of FileStream, that enables us to learn the characters from a byte stream. StreamReader may deal with character encoding (UTF-8, ASCII, and many others.) if wanted.

Let’s say you’ve a file that comprises writer information that you just need to insert right into a database desk. Assuming every line of textual content within the file represents a unique writer document, you would embody the next code in your Program.cs file to add the contents of the file, line by line, to a minimal API endpoint.


app.MapPost("/writer/add", (IFormFile file,
    [FromServices] IAuthorRepository authorRepository) =>
{
    utilizing var streamReader = new StreamReader(file.OpenReadStream());
    whereas (streamReader.Peek() >= 0)
        authorRepository.Create(streamReader.ReadLine() ?? string.Empty);
});

You would possibly use the previous code snippet to learn a group of writer knowledge represented as JSON, for instance, after which insert these information in a database desk. Notice that I’ve omitted the supply code of the IAuthorRepository interface and its carried out courses right here for brevity.

Avoiding anti-forgery errors when importing recordsdata

When importing recordsdata in ASP.NET Core, you could usually encounter anti-forgery errors. ASP.NET Core points these errors to warn of cross-site request forgery assaults.

ASP.NET Core anti-forgery error

Determine 1: ASP.NET Core might generate an anti-forgery error when importing a file. 

Foundry

In case your endpoint is secure and it doesn’t require anti-forgery safety, you possibly can disable anti-forgery validation for the endpoint through the use of the DisableAntiforgery methodology, as proven within the following code.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles