在发布到另一个API之前,我似乎有点不知道如何对文件大小等执行一些验证,当我ReadAsMultipartAsync它似乎阻止了对API的调用并且我得到了错误
“在写入所有字节之前无法关闭流。”
以下是我的代码示例
public async Task<HttpResponseMessage> Post() {
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var formdata = await Request.Content.ReadAsMultipartAsync(new MultipartMemoryStreamProvider());
IList<HttpContent> files = formdata.Contents;
foreach (var file in files) {
var length = file.Headers.ContentLength;
// throw error if too large
}
// All good send the file to API
var mediaEndpoint = new Uri(new Uri(config.ApiUri), "/media/files");
var request = new HttpRequestMessage(HttpMethod.Post, mediaEndpoint);
request.Content = Request.Content;
return await _httpClient.SendAsync(request);
}
据我所知,它仍在阅读表格数据或仍然保留在内存中,因此无法发布,我需要关闭一些东西或处理一些东西,但我可以看到哪里。任何帮助将不胜感激。
谢谢