Следуя руководству, найденному в ASP.NET, был реализован метод контроллера API для выполнения асинхронных загрузок файлов, которые выглядят следующим образом:
public Task<HttpResponseMessage> PostFormData()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
// Read the form data and return an async task.
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
Загрузка файла через стандартную многостраничную HTML-форму отлично работает. Однако, когда другой разработчик пытается загрузить файл через многострочную форму, созданную классом Flex FileReference, возникает ошибка:
Неожиданный конец многопоточного потока MIME. Сообщение MIME не завершено.
Я понятия не имею, существует ли проблема в веб-API или Flex. Я нашел некоторые связанные исправления, которые не повлияли (Многопользовательская форма POST с использованием ASP.Net Web API), а в последнее время этот (MIME multipart stream. MIME multipart message не является полной ошибкой при загрузке webapi). Если вторая ссылка имеет значение true, знает ли кто-нибудь ее в текущем выпуске веб-API, доступного через Nuget? Обсуждение было в мае, последний выпуск от Nuget - август, поэтому я предполагаю, что это исправление уже развернуто и не является основной причиной моей проблемы.