文件流通过Web API上传到StreamReader

时间:2014-05-02 21:12:12

标签: c# asp.net .net asp.net-web-api

基本上我想将文件流式传输到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);
        }
    }

我对其他解决方案持开放态度,只要我将数据流入其中。我是新手等待和异步,我可能犯了一个基本错误。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

async void更改为async Task