2014-02-14 53 views
3

我想創建一個WEB API,用於將給定客戶端上的文件上傳到Azure。爲此,我知道我可以使用如下類:MultipartFormDataStreamProvider(不確定此類是否適用於Azure)在ASP.NET MVC Web api控制器中上傳文件

我希望可以從各種應用程序訪問此API。首先爲一個簡單的.NET應用程序。但我的問題是我可以使用這個相同的API來處理從Android應用程序,Windows 8應用程序等文件上傳?

如果這是不可能的,那麼所有這些應用程序都需要暴露一個單獨的API嗎?

我對API的理解是,它可以在各種應用程序中用於所需的功能。但在這種情況下,上傳文件所需的類將限制其使用。

回答

1

的Web API代碼,上傳圖片

[System.Web.Http.AcceptVerbs("POST")] 
     public async Task<object> AddAttachment() 
     { 
      if (!Request.Content.IsMimeMultipartContent("form-data")) 
      { 
       throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType)); 
      } 

      NamedMultipartFormDataStreamProvider streamProvider = new NamedMultipartFormDataStreamProvider(
       HttpContext.Current.Server.MapPath("~/App_Data/")); 

      await Request.Content.ReadAsMultipartAsync(streamProvider); 
      string path = streamProvider.FileData.Select(entry => entry.LocalFileName).First(); 
      byte[] imgdata = System.IO.File.ReadAllBytes(path); 

      return new 
      { 
       FileNames = streamProvider.FileData.Select(entry => entry.LocalFileName), 

      }; 
     } 
+0

thanx代碼。但我已經有了這個。我需要知道這是否會工作,當我嘗試從一個Android應用程序上傳文件。 –

+0

我還沒有嘗試,但我認爲它會工作 – Nilesh

3

@nikhil斑:在的ASP.NET Web API,幫助您創建可以通過任何類型的客戶端,支持HTTP請求的消費REST的Web服務。我發現這篇文章在這裏

http://hintdesk.com/android-upload-files-to-asp-net-web-api-service

非常好,因爲它說明了我們如何可以調用來自不同客戶端的Web服務。只是檢查出來。