【发布时间】:2018-08-26 09:44:52
【问题描述】:
我有这个HttpClient 用于发布文件:
var content = new MultipartFormDataContent(Guid.NewGuid().ToString())
{
new StringContent(JsonConvert.SerializeObject(parameters), Encoding.UTF8, "application/json")
};
foreach (var file in files)
{
var byteContent = new ByteArrayContent(file.Data);
content.Add(byteContent, file.FieldName, file.FileName);
}
return await _client.PostAsync(_apiUrl + apiRelativeUrl, content);
但我的ASP.NET WebApi Controller 给出错误 500,但有此异常:
System.IO.IOException: Unexpected end of MIME multipart stream. MIME multipart message is not complete.
WebApi 控制器代码是
if (Request.Content.IsMimeMultipartContent())
{
var multipart = await Request.Content.ReadAsMultipartAsync(); //this line throws the exception
var fileContent = multipart.Contents.FirstOrDefault();
if (fileContent != null)
{
var photo = await fileContent.ReadAsByteArrayAsync();
}
}
我做错了什么?
【问题讨论】:
-
请提供完整的代码来理解问题。
-
你需要什么代码? var 参数是通用的,文件是 IEnumerable 的自定义类,带有 byte[] 数据、字段名和文件名。
-
你的控制器签名是什么?你从哪里得到你的文件?你的 MVC/jQuery 代码是什么?
-
@Caelan 你能访问web api方法代码吗?你能休息一下吗?哪一行出错了?
-
这是一个 webapi 控制器,从 Request 中读取数据,文件来自手机摄像头,Xamarin 表单应用程序
标签: c# asp.net asp.net-web-api2 multipartform-data dotnet-httpclient