웹 API를 통해 파일을 업로드하는 방법을 만들기 위해 Web API를 사용하고 있습니다. 이 작업을 수행하는 방법에 대한 여러 블로그 게시물을 발견했으며 코드는 모두 Request.Content.ReadAsMultipartAsync() 호출의 주요 공통점과 매우 유사합니다. 내가 가진 문제는 첫 번째 업로드가 정상적으로 작동하지만 IIS가 후속 업로드가 실패하는 오류 상태가되는 것입니다. 처음 32Kb가 들어 오지만 종료됩니다. 디버깅은 ASP.NET 프레임 워크의 어딘가에서 발생하는 null 참조 예외 만 보여줍니다. 여기 웹 API를 통한 파일 업로드가 두 번째 업로드시 실패합니다.
는<!doctype html>
<head>
<title>File Upload Progress Demo #3</title>
</head>
<body>
<h1>File Upload Progress Demo #3</h1>
<code><input type="file" name="myfile[]"></code><br>
<form action="/api/fileupload" method="post" enctype="multipart/form-data">
<input type="file" name="myfile"><br>
<input type="submit" value="Upload File to Server">
</form>
<div class="progress">
<div class="bar"></div>
<div class="percent">0%</div>
</div>
<div id="status"></div>
</body>
위의 코드는 기본에서 다운로드 할 수 있습니다 ... 내가 가지고있는 ApiController 정의 ...
또한public class FileUploadController : ApiController
{
public void Post()
{
if (Request.Content.IsMimeMultipartContent())
{
var path = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(path);
var task = Request.Content.ReadAsMultipartAsync(provider);
task.ContinueWith(t =>
{
if (t.IsFaulted || t.IsCanceled)
throw new HttpResponseException(HttpStatusCode.InternalServerError);
});
}
else
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
}
}
}
, 나는 여기에서 게시하고있는 페이지입니다 WebApi 솔루션은 https://github.com/JohnLivermore/FileUploadTest입니다. 실행하여 http://localhost:{port}/FormPost.html
으로 이동하십시오. 첫 번째 업로드가 성공하지만 (App_Data로 업로드) 이후의 업로드는 첫 번째 32KB 만 업로드 한 다음 실패합니다.
이 코드는 .NET 4 또는 .NET 4.5에서 실행됩니까? – tugberk