我想知道您将如何生成 swagger UI 以将文件作为流上传到 ASP.net Core Controller 。
这是一个链接,描述了上传小文件与上传大文件之间的区别。
这里是描述如何实现小文件上传的链接,但没有详细说明如何实现流。
https://www.janaks.com.np/upload-file-swagger-ui-asp-net-core-web-api/
谢谢, 德里克
最佳答案
我不知道有任何能力可以直接在请求参数上使用 Stream
类型,但是 IFormFile
接口(interface)规定了使用流的能力.所以我会在您的请求参数中保留 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
}
关于file-upload - 如何上传文件以从 swagger 流式传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47274920/