【问题标题】:How to upload file to stream from swagger?如何从 swagger 上传文件到流?
【发布时间】:2018-02-28 18:04:20
【问题描述】:
【问题讨论】:
标签:
file-upload
swagger
swagger-ui
swashbuckle
【解决方案1】:
我不知道有任何直接在请求参数上使用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
}