C# 跨多个层传输大文件
以GB为单位的大型zip文件存储在API层中。当用户单击浏览器中的下载按钮时,请求将通过WEB层传输到API层,作为回报,我们需要将大文件从API层传输到WEB层,然后返回到客户端浏览器 请告知我如何在不将文件写入WEB应用程序的情况下,将大型文件从API应用程序流式传输到WEB应用程序到客户端 Web应用程序使用rest sharp库请求API应用程序,如果您可以建议使用rest sharp或本机代码的解决方案,那就太好了。这两个项目都在.NET core 2.2中您在寻找下载数据吗 以下内容直接来自中的示例: var tempFile=Path.GetTempFileName; 使用var writer=File.OpenWritetempFile; var client=new RestClientbaseUrl; var request=new restrequesteassets/LargeFile.7z; request.ResponseWriter=responseStream=> { 使用responseStream { responseStream.CopyTowriter; } }; var response=client.DownloadDatarequest;C# 跨多个层传输大文件,c#,asp.net-core,restsharp,C#,Asp.net Core,Restsharp,以GB为单位的大型zip文件存储在API层中。当用户单击浏览器中的下载按钮时,请求将通过WEB层传输到API层,作为回报,我们需要将大文件从API层传输到WEB层,然后返回到客户端浏览器 请告知我如何在不将文件写入WEB应用程序的情况下,将大型文件从API应用程序流式传输到WEB应用程序到客户端 Web应用程序使用rest sharp库请求API应用程序,如果您可以建议使用rest sharp或本机代码的解决方案,那就太好了。这两个项目都在.NET core 2.2中您在寻找下载数据吗 以下内容
通过使用HttpClient而不是RestSharp库将内容直接下载到浏览器,找到了解决方案 代码片段如下所示
HttpClient client = new HttpClient();
var fileName = Path.GetFileName(filePath);
var fileDowloadURL = $"API URL";
var stream = await client.GetStreamAsync(fileDowloadURL).ConfigureAwait(false);
// note that at this point stream only contains the header the body content is not read
return new FileStreamResult(stream, "application/octet-stream")
{
FileDownloadName = fileName
};
将API请求的响应流直接作为web请求的响应返回。请说明下发的原因如果是流式传输文件和下载的一个层,则此操作有效,但我需要从应用层读取一个文件并将其流式传输到web层,从web层我需要再次流式传输到客户端如果您要从服务器流式传输到客户端并返回到服务器。。。至少是你在其中一条评论里写的。。。我建议使用MemoryStream而不是FileStream。。。它会表现得更好!