首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# IFormFile as ZipFile

C# IFormFile as ZipFile
EN

Stack Overflow用户
提问于 2017-09-14 13:07:19
回答 1查看 5.2K关注 0票数 0

我有一个REST端点,它在.Net Core1.1上接收zip文件。我从这样的请求中得到了IFormFile

代码语言:javascript
复制
var zipFile = HttpContext.Request.Form.Files.FirstOrDefault();

然后,我需要将它传递给.Net标准1.5中的服务方法,在那里不支持IFormFile。

因此,问题是:如何将IFormFile转换为ZipFile或标准1.5中支持的其他类型,或者有更合适的方式处理zip文件?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-14 13:13:30

IFormFile只是接收到的文件的包装器。您仍然应该阅读实际的文件,对此做些什么。例如,可以将文件流读入字节数组并将其传递给服务:

代码语言:javascript
复制
byte[] fileData;
using (var stream = new MemoryStream((int)file.Length))
{
    file.CopyTo(stream);
    fileData = stream.ToArray();
}

或者您可以将流复制到文件系统中的物理文件中。

但是这基本上取决于您实际想要对上传的文件做什么,所以您应该从这个方向开始,并将IFormFile转换为您需要的东西。

如果您想以ZIP的形式打开文件并从中提取某些内容,您可以尝试接受流的 constructor。就像这样:

代码语言:javascript
复制
using (var stream = file.OpenReadStream())
using (var archive = new ZipArchive(stream))
{
    var innerFile = archive.GetEntry("foo.txt");
    // do something with the inner file
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46220025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档