ASP.NET MVC 4在完全填充服务器内存之前获取文件输入流

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

我很难弄清楚如何将文件InputStream从文件上传Post请求到服务器,然后才能完全加载到内存中。

对于较小的文件,这不是问题,但我担心在尝试上传较大的文件(1或更多GB)后会发生什么。我找到了使用HttpContext.Request.GetBufferlessInputStream(true)的可能解决方案,但是此流包括整个请求,而不仅仅是上传文件,如果我使用它来上传文件,例如上传到Azure Blob存储器或其他任何我最终使用损坏的文件。我也丢失了有关文件的所有信息(文件名,大小等)。

有没有方便的方法将大文件上传到服务器而不填充内存?我想获取流,然后使用它以块的形式上传文件。

谢谢。

asp.net .net asp.net-mvc-4 file-upload
1个回答
1
投票

我使用DevExpress UploadControl进行类似的任务。它支持large file upload by chunks。临时文件保存在服务器硬盘驱动器上,您可以使用FileSteam获取它而无需在服务器内存中完全加载。它还支持direct upload到Azure,Amazon和Dropbox。他们的MVC上传控件也是如此。

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