我試圖撿起這個多部分帖子消息:讀取MIME多部分正文部分時出錯。 ---> System.Web.HttpException:客戶端斷開
POST /api/Image/Upload HTTP/1.1 Host: ServerName Content-Type:
multipart/form-data;
boundary=-------------Boundary----------35042EC1-790C-4CDD-8E21-66E6B1025C2D
Connection: keep-alive Accept: */* filename: DefaultPrefix1.jpg
User-Agent: KameraApp/1 CFNetwork/808.3 Darwin/16.3.0 Content-Length:
5492253 Accept-Language: da-dk Accept-Encoding: gzip, deflate
---------------Boundary----------35042EC1-790C-4CDD-8E21-66E6B1025C2D Content-Disposition: form-data; name='image';
filename="DefaultPrefix1.jpg" Content-Type: image/jpg
Image Data
End boundary
這是我當前如何試圖做到這一點:
[RoutePrefix("api/Image")]
public class ImageController : ApiController
{
[HttpPost]
[Route("Upload")]
public async Task<IHttpActionResult> UploadAsync()
{
var uploadPath = HostingEnvironment.MapPath("/") + "Uploads";
Directory.CreateDirectory(uploadPath);
var provider = new MultipartFormDataStreamProvider(uploadPath);
await Request.Content.ReadAsMultipartAsync(provider);
// Files
//
foreach (MultipartFileData file in provider.FileData)
{
Debug.WriteLine(file.Headers.ContentDisposition.FileName);
Debug.WriteLine("File path: " + file.LocalFileName);
}
// Form data
//
foreach (var key in provider.FormData.AllKeys)
{
foreach (var val in provider.FormData.GetValues(key))
{
Debug.WriteLine(string.Format("{0}: {1}", key, val));
}
}
return Ok("Working");
}
}
我也加入了這個文件
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" maxRequestLength ="100000"/>
</system.web>
我可以看到上傳到上傳文件夾中的文件的一部分的大小,但我不斷收到客戶端已斷開親瑕疵..我沒有這個問題對付一個PHP腳本,只是拿起文件,只是把它移動到我選擇的文件夾我不是一個PHP開發人員,所以我現在選擇了一些更舒適的東西來構建一個更高級的版本,但我很努力地收到文件..
任何建議,我做錯了什麼?
我已經嘗試恢復到在mac服務器上工作的PHP腳本,以查看它是否更基礎。當我在Windows服務器上運行PHP腳本時,我得到了
[星期二4月11日12時38分05秒2017年] [IP]:[端口號]無效請求(意外EOF)
當我在Mac上運行PHP腳本以進行應用程序的測試時,這並未發生。所以現在我的問題是,它可能是我在Web API上遇到的同一個EOF問題。以及如何解決EOF問題?我不認爲我可以在Windows中解決它,因爲Windows無法找到文件的結尾。 ?