在 .netcore Web api 中上传 IFormFile 与 Base64 字符串有什么区别?

Yar*_*iak 9 file-upload .net-core iformfile

我正在使用 .net core Web api 来接受、上传和下载文件内容。

我已经尝试过 IFormFile 和简单的 base64 编码的文件内容

UploadFile(IFormFile file) UploadFile([FromBody] string base64Filecontentstring)

我只是想知道使用这些是否有什么区别?如果有,您应该使用哪一种以及何时使用?

Raf*_*sto 9

对于小文件,Base64 可以正常工作,它很容易处理并避免对 Domain 中的 Http.IFormFile 的依赖。

但是使用 JSON 作为 Base64 发送大文件并不是一个好主意。转换回实际图像以便在服务器上复制将需要大量内存和时间。

我推荐这篇优秀的文章:https://medium.com/@ma1f/file-streaming-performance-in-dotnet-4dee608dd953,它表明 base64 性能差 5-20 倍。

由你决定。