webapi 上传文件,"MIME 多节流出现意外的结尾。MIME 多节消息不完整" 错误提示问题

戢翔 2021-04-25 11:26:45
我的目的是想上传多个文件的同时,传入参数body。以下是代码,在小文件上传时没什么问题,但是大文件或者多线程上传就会报错,请问大家知道是什么原因导致的吗?


//客户端代码
using (var stream = new FileStream(@"e:\\上传测试.pdf", FileMode.Open, FileAccess.Read))
{
using (var client = new HttpClient())
{
using (var multiContent = new MultipartFormDataContent())
{
var bodyContent = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(content), Encoding.UTF8);
bodyContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("body");

stream.Position = 0;
var streamContent = new StreamContent(stream);
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");

//上传body
multiContent.Add(bodyContent);
//上传文件流
multiContent.Add(streamContent);

var multiResult = client.PostAsync(url, multiContent).Result;
}
}
}



//服务端代码
[HttpPost]
public HttpResponseMessage Test()
{
var provider = new MultipartMemoryStreamProvider();
Task.Factory.StartNew(() => provider = base.Request.Content.ReadAsMultipartAsync().Result, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default).Wait();
foreach (var item in provider.Contents)
{
//读取body参数
if (item.Headers.ContentDisposition.DispositionType == "body")
{

}
//读取文件流
if (item.Headers.ContentDisposition.DispositionType == "attachment")
{

}
}

return new HttpResponseMessage(System.Net.HttpStatusCode.OK);
}
...全文
430 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
戢翔 2021-04-27
  • 打赏
  • 举报
回复
引用 2 楼 非专业开发Five 的回复:
请百度IIS 上传文件限制 解除
我上传文件限制500m,单个文件30m,单线程上传没有问题,多线程上传客户端就会请求一个或多个错误
戢翔 2021-04-27
  • 打赏
  • 举报
回复
单线程上传就没有问题,多线程上传客户端postAsync那里就会发生一个或多个错误。
  • 打赏
  • 举报
回复
请百度IIS 上传文件限制 解除
戢翔 2021-04-26
  • 打赏
  • 举报
回复
没有人遇到过这个问题吗?
紫魂一号 2021-04-26
  • 打赏
  • 举报
回复
json超长了?设置最大值,或者限制上传文件大小?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧