Файл веб-API ASP.NET сохранен как «BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af»

Я загружаю файлы с помощью веб-API ASP.NET. Я сделал это до RC, но по какой-то причине файл сохраняется как «BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af» вместо имени файла. Переменная имени файла ниже также возвращает эту строку тела вместо имени файла. Кажется, я не могу понять, где я ошибаюсь. Любая помощь приветствуется.

Код клиента:

function upload() {
    $("#divResult").html("Uploading...");
    var formData = new FormData($('form')[0]); 
    $.ajax({
        url: 'api/files/uploadfile?folder=' + $('#ddlFolders').val(),
        type: 'POST',
        success: function (data) {
            $("#divResult").html(data);
        },
        data: formData,
        cache: false,
        contentType: false,
        processData: false
    });
}; 

Контроллер:

    public Task<HttpResponseMessage> UploadFile([FromUri]string folder)
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
        }

        // Save file
        MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
        Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);

        return task.ContinueWith<HttpResponseMessage>(contents =>
        {
            string filename = provider.BodyPartFileNames.First().Value;
            return new HttpResponseMessage()
          {
              Content = new StringContent(string.Format("File saved in {0}.", folder))
          };

        }, TaskScheduler.FromCurrentSynchronizationContext());

Файлы выглядят так:

enter image description here

34
задан Rivka 10 June 2012 в 21:16
поделиться