Làm theo hướng dẫn tìm thấy trên ASP.NET, thực hiện phương pháp điều khiển API Web để thực hiện tải lên tệp không đồng bộ như sau:ASP.NET Web API, kết thúc bất ngờ của luồng đa phần MIME khi tải lên từ Flex FileReference
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;
}
Tải lên tệp qua biểu mẫu HTML nhiều phần chuẩn hoạt động hoàn hảo. Tuy nhiên, khi một nhà phát triển khác cố gắng tải lên tệp qua nhiều hình thức được xây dựng bởi lớp FileReference của Flex, lỗi được đưa ra:
Kết thúc luồng MIME không mong đợi. Tin nhắn đa MIME chưa hoàn thành.
Tôi không biết liệu sự cố có nằm trong API Web hay Flex hay không. Tôi đã tìm thấy một số loại bản sửa lỗi có liên quan không ảnh hưởng đến (Multipart form POST using ASP.Net Web API) và gần đây là bản sửa lỗi này ("MIME multipart stream. MIME multipart message is not complete" error on webapi upload). Nếu liên kết thứ hai là đúng, có ai biết nếu nó nằm trong bản phát hành Web API hiện tại có sẵn thông qua Nuget không? Cuộc thảo luận là vào tháng 5, bản phát hành gần đây nhất từ Nuget là tháng 8, vì vậy tôi cho rằng bản sửa lỗi này đã được triển khai, và không phải là nguyên nhân gốc rễ của vấn đề của tôi.
Đặt trình giữ chỗ tại đây cho đến khi một trong các câu trả lời đã xóa bị hủy xóa. Tôi đã có cùng một vấn đề và sửa chữa rất đơn giản - thêm tên cho phần tử tải tệp lên. ''. Idiotic. – Will
Không có tên, đầu vào không được đăng. – liammclennan