我的目的是想上傳多個檔案的同時,傳入引數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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/280129.html
標籤:C#
