Pascualito Ответов: 1

Загрузка изображений с помощью jquery $.ajax + webapi


Здравствуйте, мне нужно, чтобы загрузить изображения с помощью jQuery $.AJAX и веб-API контроллеры

Модель проста:

public class Person{

  [Required] 
  public string Name {get;set;}

  public HttpPostedFileBase Photo{ get; set; }

}


Контроллер api тоже очень прост:

[HttpPost]        
public HttpResponseMessage Save(Person person)
           
  if (!ModelState.IsValid)
  {
     Request.CreateResponse(HttpStatusCode.BadRequest)
  }
  return Request.CreateResponse(HttpStatusCode.OK);
                   
}


Что я уже пробовал:

And here is my doubt : How to configure the ajax call?

With "?????" I show where are my doubts. 

<pre>

function SaveImage(){

  var ulr= 'http://localhost:5555/api/Uploader/';

  var person = { 
          Name : 'Donald',
          Photo : ?????       //--->  what hould I assign to photo?
          };

   
$.ajax({
        url: url,
        method: "POST",
        data: person,
        cache: false,
        dataType: ???? ,  //  json ??
        contentType: ????
    }).done(function (res) {
        alert('OK');
    })
    .fail(function (res) {
        alert('PROBLEMS!!');
    })

}


Заранее спасибо!!
Паскуалито

F-ES Sitecore

Есть тысячи примеров того, как загружать изображения с помощью ajax, пожалуйста, сделайте поиск в google перед публикацией

Pascualito

Я приму это во внимание :-)

1 Ответов

Рейтинг:
5

MadMyche

Лучшим способом сделать это было бы нет создайте свой собственный JSON с нуля; и использовать JavaScripts FormData объект, чтобы собрать информацию и представить ее.

Thoughbot | смехотворно простая загрузка Ajax с помощью FormData[^]
SitePoint | более простой Ajax с интерфейсом HTML5 FormData — SitePoint[^]
переполнение стека | Как получить строку formdata js в c sharp[^]


Pascualito

Спасибо за ваш ответ!!
Я все еще задаюсь вопросом, Могу ли я добавить решение FormData к сложным объектам javascript
я имею в виду объект , который имеет дочерние объекты и строится динамически

ВАР опрос = {
Название : "один титул",
LogoImage : ??
Questions = [{ Text:'один вопрос', Options:[{},{}...,{}] },....,{}]
}

Спасибо и привет!!!

MadMyche

Объект FormData имеет методы append() и set (), которые позволяют добавлять значения к объекту. Вы должны быть в состоянии использовать один из них для передачи вашего объекта JSON

Pascualito

Спасибо Мадмыч

Я этого не знал. Я буду экспериментировать с FormData

Приветствую вас!!