2017-03-24 4 views
1

나는 Multiparti를 사용하여 안드로이드와 함께 Retrofit으로 보낼 파일을 얻었지만, 내 서버에서는 .Net C#을 사용하여 편안한 서비스를 구축했습니다. 어떻게하면 multiparti 파일을받을 수 있습니까? 개조/안드로이드?Retrofit + Restful C# 파일 업로드

샘플 :

[RoutePrefix("rest/files")] 
public class ReceiveImagesController : ApiController 
{ 
    [AcceptVerbs("POST")] 
    [Route("SendFiles")] 

    public string sendFiles() 
    { 
     string retorno = ""; 
     string path = "C:/temp"; 

     // byte[] Bytes = new byte[files.Inpu] 



     return retorno; 
    } 
} 

답변

0

내 샘플 코드와 내가 webapi 2에서 파일 업로드를 사용 나는 당신의 문제가 코드 아래 해결 것이라 생각합니다.

sing System; 
using System.Linq; 
using System.Net.Http; 
using System.Threading.Tasks; 
using System.Web.Http; 

namespace WebMvcTest.Controllers 
{ 
    [System.Web.Http.RoutePrefix("api/test")] 
    public class FileUploadController : ApiController 
    { 

     [System.Web.Http.Route("files")] 
     [System.Web.Http.HttpPost] 
     [ValidateMimeMultipartContentFilter] 
     public async Task<FileResult> UploadSingleFile() 
     { 
      var streamProvider = new MultipartMemoryStreamProvider(); 
      await Request.Content.ReadAsMultipartAsync(streamProvider); 

      string descriptionResult = string.Empty; 
      var description = 
       streamProvider.Contents.AsEnumerable() 
        .FirstOrDefault(T => T.Headers.ContentDisposition.Name == "\"description\""); 
      if (description != null) 
      { 
       descriptionResult = await description.ReadAsStringAsync(); 
      } 

      return new FileResult 
      { 
       FileNames = streamProvider.Contents.AsEnumerable().Select(T => T.Headers.ContentDisposition.FileName).ToArray(), 
       Names = streamProvider.Contents.AsEnumerable().Select(T => T.Headers.ContentDisposition.FileName).ToArray(), 
       ContentTypes = streamProvider.Contents.AsEnumerable().Where(T => T.Headers.ContentType != null).Select(T => T.Headers.ContentType.MediaType).ToArray(), 
       Description = descriptionResult, 
       CreatedTimestamp = DateTime.UtcNow, 
       UpdatedTimestamp = DateTime.UtcNow, 
      }; 
     } 
    } 
} 
관련 문제