[英]File Streaming upload via Web API to a StreamReader
基本上我想将文件流式传输到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);
}
}
只要我正在流式传输数据,我就会接受其他解决方案。我是新手等待和异步,我可能犯了一个基本错误。 有任何想法吗?
将async void
更改为async Task
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.