-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed
Labels
DocsThis issue tracks updating documentationThis issue tracks updating documentationarea-minimalIncludes minimal APIs, endpoint filters, parameter binding, request delegate generator etcIncludes minimal APIs, endpoint filters, parameter binding, request delegate generator etcfeature-minimal-actionsController-like actions for endpoint routingController-like actions for endpoint routing
Milestone
Description
Is your feature request related to a problem? Please describe.
Today we don't have any native support for binding to IFormFiles as part of the incoming request. This is convenient for applications that want to do file uploads.
Describe the solution you'd like
app.MapGet("/upload", async (IFormFile file) =>
{
var uploads = Path.Combine(uploadsPath, file.FileName);
using var fileStream = File.OpenWrite(uploads);
using var uploadStream = file.OpenReadStream();
await uploadStream.CopyToAsync(fileStream);
});Additional context
- Should we support IFormFileCollection?
- Would we do matching by name? (yes)
Without this, it will look like this:
app.MapGet("/upload", async (HttpRequest req) =>
{
if (!req.HasFormContentType)
{
return Results.BadRequest();
}
var form = await req.ReadFormAsync();
var file = form.Files["file"];
if (file is null)
{
return Results.BadRequest();
}
var uploads = Path.Combine(uploadsPath, file.FileName);
using var fileStream = File.OpenWrite(uploads);
using var uploadStream = file.OpenReadStream();
await uploadStream.CopyToAsync(fileStream);
return Results.NoContent();
});bcdev-com, jchannon, boukenka, khalidabuhakmeh, bradygaster and 2 more
Metadata
Metadata
Assignees
Labels
DocsThis issue tracks updating documentationThis issue tracks updating documentationarea-minimalIncludes minimal APIs, endpoint filters, parameter binding, request delegate generator etcIncludes minimal APIs, endpoint filters, parameter binding, request delegate generator etcfeature-minimal-actionsController-like actions for endpoint routingController-like actions for endpoint routing