T.E*_*les 4 c# file-upload asp.net-core
一直关注 MS 提供的文件上传示例以及此处的各种其他示例;经过很多天的尝试让它发挥作用后,我陷入了困境。
我需要能够上传高达 10GB 的文件 - 我正在使用流式传输物理方法。我更改了请求大小限制。我使用的是 IIS,因此我关闭了请求过滤以接受超过 4GB 的文件。但我选择的任何超过 4GB 的文件,控制器都会命中,然后出现意外的流结束错误。我有 DisableFormBinding 属性,我尝试启用缓冲,我尝试忽略 AntiForgeryToken - 我没有主意。
超过 4GB 的文件是否无法通过流式处理,我是否需要使用旧的分块方法?
byte[]
或。MemoryStream
仅当您下载/上传文件时才对流进行操作。文件上传场景 上传文件的两种常用方法是缓冲和流式传输。
1 - 缓冲
整个文件被读入 IFormFile 中,它是用于处理或保存文件的文件的 C# 表示形式。
文件上传使用的资源(磁盘、内存)取决于并发文件上传的数量和大小。如果应用程序尝试缓冲过多的上传,则网站会在内存或磁盘空间不足时崩溃。如果文件上传的大小或频率耗尽了应用程序资源,请使用流式传输。
Any single buffered file exceeding 64 KB is moved from memory to a temp file on disk.
Run Code Online (Sandbox Code Playgroud)
2 -流媒体
该文件是从多部分请求接收的,并由应用程序直接处理或保存。流式传输不会显着提高性能。流式传输减少了上传文件时对内存或磁盘空间的需求。
有关更多详细信息:在 ASP.NET Core 5 中上传文件
我认为这可能会有所帮助:Upload Large Files To MVC / WebAPI using Partitioning
归档时间: |
|
查看次数: |
7608 次 |
最近记录: |