[英]How do I get the file contents of a MultipartMemoryStreamProvider as a byte array?
I have created a component that uploads files to a Web API controller using FormData. 我创建了一个使用FormData将文件上传到Web API控制器的组件。
How do I get the file contents from the MultipartMemoryStreamProvider as a byte array? 如何从MultipartMemoryStreamProvider获取文件内容作为字节数组?
Here is the Web Api method 这是Web Api方法
public Task<IEnumerable<FileModel>> Post()
{
if (Request.Content.IsMimeMultipartContent())
{
var streamProvider = new MultipartMemoryStreamProvider();
var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileModel>>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
FileDataBO filedata;
var fileInfo = streamProvider.Contents.Select(i => {
//save to db
filedata = new FileDataBO ();
filedata.FileName = i.Headers.ContentDisposition.FileName;
filedata.FileType = "jpeg";
// HOW TO GET FILE CONTENT HERE??? IT SHOULD BYTE[]
//filedata.FileContent = ???
//TODO
//_fileDataService.SaveFile(filedata);
return new FileModel(i.Headers.ContentDisposition.FileName, 2048);
});
return fileInfo;
});
return task;
}
else
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
}
}
您应该能够通过执行i.ReadAsByteArrayAsync()
获取内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.