在WebAPI中返回流是否安全?

问题描述 投票:0回答:1

我的WebAPI需要返回一个Stream。

using (var stream = new MemoryStream())
{
    //Fill the Stream
    stream.Seek(0, SeekOrigin.Begin);
    return new OkObjectResult(stream);
}

以上内容将不起作用,因为在客户获得stream之前就已将其处置。所以我只是将其更改为:

var stream = new MemoryStream();
//Fill the Stream
stream.Seek(0, SeekOrigin.Begin);
return new OkObjectResult(stream);

我想知道从WebAPI返回流是否安全。我的疑问是,垃圾收集器能否在客户端完成获取/下载内容之前处理stream

c# asp.net-web-api asp.net-core-webapi
1个回答
0
投票

您可以使用FileStreamResult:它处理您的对象

FileStream s = new FileStream(“ \ Path”,FileMode.Open,FileAccess.Read,FileShare.Read);

        return new FileStreamResult(s, file.MimeType);
© www.soinside.com 2019 - 2024. All rights reserved.