c #Multipart FormData文件验证

时间:2018-06-01 13:31:10

标签: c# asp.net-web-api multipartform-data dotnet-httpclient httpresponsemessage

在发布到另一个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);
}

据我所知,它仍在阅读表格数据或仍然保留在内存中,因此无法发布,我需要关闭一些东西或处理一些东西,但我可以看到哪里。任何帮助将不胜感激。

谢谢

0 个答案:

没有答案