通过Web API将文件流式上传到StreamReader

本文关键字:StreamReader Web API 文件 通过 | 更新日期: 2023-09-27 18:01:30

基本上我想流一个文件到web API,一旦在web API控制器我想传递数据,因为它通过流阅读器进入较低层次的逻辑。我尝试了下面的代码,从另一个SO帖子中找到了一些修改,但我得到:

在异步过程中完成的异步模块或处理程序操作尚未完成

    public async void Put(int id, HttpRequestMessage request)
    {
        if (!Request.Content.IsMimeMultipartContent())
            throw new InvalidOperationException();
        var provider = new MultipartMemoryStreamProvider();
        await Request.Content.ReadAsMultipartAsync(provider);
        var file = provider.Contents.First();
        var filename = file.Headers.ContentDisposition.FileName.Trim(''"');
        var buffer = await file.ReadAsByteArrayAsync();
        var stream = new MemoryStream(buffer);
        using (var s = new StreamReader(stream))
        {
            saveFile.Execute(id, s);
        }
    }

我对其他解决方案持开放态度,只要我在数据进来时流式传输数据。我是等待和异步的新手,我可能犯了一个基本的错误。什么好主意吗?

通过Web API将文件流式上传到StreamReader

async void更改为async Task