使用 C# 在 ASP.NET Core 中异步文件上传的最佳策略

问题描述 投票:0回答:1

我目前正在开发一个 ASP.NET Core Web 应用程序,用户可以在其中异步上传大文件。我已经使用内置的 IFormFile 接口实现了基本的文件上传功能,但是我遇到了较大文件和多个并发上传的性能问题。

我研究了各种方法,包括使用 HttpClient 进行分块上传以及与 Plupload 等第三方库集成,但我不确定哪种方法最适合我的要求。

// Basic file upload using IFormFile interface
[HttpPost]
public async Task<IActionResult> Upload(IFormFile file)
{
    if (file != null && file.Length > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        var filePath = Path.Combine("uploads", fileName);
        using (var fileStream = new FileStream(filePath, FileMode.Create))
        {
            await file.CopyToAsync(fileStream);
        }
        return Ok("File uploaded successfully.");
    }
    return BadRequest("No file uploaded or file is empty.");
}

c# performance asp.net-core file-upload scalability
1个回答
0
投票

对于某些人来说,大文件仍然是超过 5 Mb 的文件。 您的情况哪个尺寸大?

对于大文件来说,最合适的方法是使用有关此案例的官方文档并实施所有建议。我从你的代码中看不到它。您是否测试过或准备测试这种方法?

https://learn.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-5.0#upload-large-files-with-streaming

© www.soinside.com 2019 - 2024. All rights reserved.