2015-10-02 7 views
0

Я читал о создании метода действия в своем веб-Api, чтобы разрешить размещение изображений, которые будут сохранены на сервере и связаны с объектом Contact через поле imageURL.Простой файл изображения POST для Web Api

Я нашел несколько примеров онлайн о том, как установить это, и я хочу их протестировать. Я в настоящее время:

public Task<HttpResponseMessage> PostFile() 
{ 
    HttpRequestMessage request = this.Request; 
    if (!request.Content.IsMimeMultipartContent()) 
    { 
     throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
    } 

    string root = System.Web.HttpContext.Current.Server.MapPath("~/Content/images"); 
    var provider = new MultipartFormDataStreamProvider(root); 

    var task = request.Content.ReadAsMultipartAsync(provider). 
     ContinueWith<HttpResponseMessage>(o => 
    { 

     string file1 = provider.BodyPartFileNames.First().Value; 
     //Use file name to update ImageURL of contact 

     return new HttpResponseMessage() 
     { 
      Content = new StringContent("File uploaded.") 
     }; 
    } 
    ); 
    return task; 
} 

от How To Accept a File POST, и в то время как я понимаю, поток я хочу, чтобы проверить его должным образом.

Каким будет пример вызова клиента для этого метода API, в который я могу включить contactid как заголовок?

Мне нужно понять это правильно, чтобы проверить этот образец кода, чтобы я мог начать понимать это больше, но я действительно новичок в этой области. У меня есть сценарий с курицей и яйцом, где я мало разбираюсь в размещении и получении изображений и нуждаюсь в начальной точке.

Спасибо.

+0

Если вы знакомы с Java/Android, вы можете использовать Android Studio для создания клиентского приложения, которое может загружать файл в веб-API. – BNK

+0

Я не очень хорошо знаком с Java/Android, к сожалению – JonnyKnottsvill

+0

Я думаю, что есть несколько примеров с Windows Phone app на http://asp.net/webpi – BNK

ответ

0

Вы можете использовать небольшое приложение MVC или ASP (вам нужна только одна страница), где вы можете использовать некоторые JS-плагины для отправки файлов на ваш контроллер. Плагины: jQueryFileUpload или DropzoneJS. Последнее проще интегрировать. Оба плагина поддерживают отправку дополнительных данных.

+0

Спасибо, я посмотрю! Если они перетаскивают «n», как будет выглядеть запрос API POST на эту страницу? – JonnyKnottsvill

+0

См. Выше. Я не пометил комментарий – JonnyKnottsvill

+0

Вы можете проверить полезную нагрузку запроса, используя для DevTools (нажмите F12) на Chrome, затем вкладку Сеть. После этого вы нажмете на запрос, и вы увидите что-то подобное с этим сообщением (http://chxo.com/be2/20050724_93bf.html). –

Смежные вопросы