我想知道如何生成swagger UI以将文件作为流上传到ASP.net Core控制器。
这是一个描述上传小文件与大文件之间差异的链接。
以下是描述如何实现小文件上载的链接,但没有详细说明如何实现流。
https://www.janaks.com.np/upload-file-swagger-ui-asp-net-core-web-api/
谢谢,德里克
我不知道有任何能力直接在请求参数上使用Stream
类型,但IFormFile
接口规定了使用流的能力。所以我会在你的请求参数中保留IFormFile
类型,然后:
在我的情况下,我想完全基础64字节(我的文件只有几百kbs)所以我使用这样的东西:
string fileBase64 = null;
using (var memStream = new MemoryStream())
{
model.FormFile.CopyTo(memStream);
fileBase64 = Convert.ToBase64String(memStream.ToArray());
}
在你的情况下,MemoryStream
可能不合适;正如您所提到的那样,您不希望将整个文件保留在内存中。
所以我建议打开阅读流,例如:
using (var fileStream = model.FormFile.OpenReadStream())
{
// Do yo' thang
}