.NET 从 URL 流中获取文件(保留标头和数据)

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

我当前正在访问 URL 来获取文件,GET 请求是

responseType:  'stream' 

在我的 API 中,我需要将此“流”读入某种稍后可以使用的对象,但我需要访问文件标头,并且还能够访问完整数据(将其写出或保存) )。 这些是 PDF 文件(如果这有影响的话),但我只是不确定我应该使用什么类型来完成这样的事情。 这是我所拥有的示例,但标题不正确:

        private async Task<(byte[]?, HttpContentHeaders)> ReadFileData(string url)
        {
            byte[]? fileData = null;
            HttpContentHeaders headers = null;
            using (var response = await _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead))
            {
                response.EnsureSuccessStatusCode();

                using (var stream = await response.Content.ReadAsStreamAsync())
                using (var memoryStream = new MemoryStream())
                {
                    await stream.CopyToAsync(memoryStream);
                    fileData = memoryStream.ToArray();

                    ByteArrayContent byteContent = new ByteArrayContent(fileData);
                    MultipartFormDataContent form = new MultipartFormDataContent();
                    form.Add(byteContent, "files", "files");
                    headers = form.Headers;
                }
            }

            return (fileData, headers);
        }

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

你尝试过这个吗:

HttpPostedFile myFile = HttpContext.Current.Request.Files[0];

MemoryStream myFileStream = new MemoryStream();
            
myFile.InputStream.CopyTo(myFileStream);

注意: 此代码在 WEB API 的控制器端点中执行。

© www.soinside.com 2019 - 2024. All rights reserved.