2016-11-02 10 views
0

저는 iOS 사람과 일하고 있습니다. 그는 WebAPI ASP.NET을 통해 이미지를 업로드하려고합니다. 그 이미지를받을 수있는 전화를해야합니다.
그는 AFNetworking을 사용하여 AFMultipartFormData을 통해 데이터를 전송한다고 말했습니다. 제 질문은 제 말에 어떻게 이것을받을 수 있습니까? JSON 형식으로 데이터를 가져와야합니까? 또는이 목적을 위해 어떤 조치가 필요합니까? 나는 처음으로 MultipartFormData으로 일하기 때문에 전체 과정을 알고 싶습니다. 대답을 기반으로

UPDATE는
나는이 사용 :ASP.NET에서 MultipartFormData를받는 방법 C#

[HttpPut] 
     public IHttpActionResult GetPatientFilesAction(int id, Model.Patients.PatientFiles patientFile) 
     { 
      Model.Patients.PatientFiles pFile=new Model.Patients.PatientFiles(); 
      try 
      { 
       HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0]; 

       var fileForm = HttpContext.Current.Request.Form; 
       var fileKey = HttpContext.Current.Request.Form.Keys[0]; 
       string[] jsonformat = fileForm.GetValues(fileKey); 
       pFile = Newtonsoft.Json.JsonConvert.DeserializeObject<Model.Patients.PatientFiles>(jsonformat[0]); 
      } 
      catch (Exception ex) 
      { 

       pFile.ErrorMessage = ex.ToString(); 
      } 
      return Ok(pFile); 
     } 

을하지만 아이폰 OS 사람이있어 :

요청 실패 : 지원되지 않는 미디어 유형 (415)

+0

수신 웹 API 컨트롤러를 작성하고 있습니까? 아니면 기존 웹 API 끝점을 호출 하시겠습니까? – uk2k05

+0

마치 처음에 이미지가 업로드 될 것입니다 ... 모두가 업로드 된 후에 JSON 객체의 나머지 부분은 IOS 앱에서 올 것입니다. –

+0

이미지와 json 데이터를 동일한 HTTP 요청으로 보낼 수 있습니다. –

답변

1

를 웹 API 내부 컨트롤러에서 다음 코드를 사용하여 이미지 파일에 액세스 할 수 있습니다. -

HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0]; 
하나 개 이상의 파일을 게시하는 경우

, 대체 파일 [0] 등 각각의 수를 1 개 또는 2

와 그리고 당신은 코드를 사용하여 JSON에 액세스 할 수 있습니다

var fileForm = HttpContext.Current.Request.Form; 
var fileKey = HttpContext.Current.Request.Form.Keys[0]; 
string[] jsonformat = fileForm.GetValues(fileKey); 
var yourModel = JsonConvert.DeserializeObject<YourClassType>(jsonformat[0]); 

당신이있는 경우를 두 개 이상의 json 문자열이 게시 된 경우 jsonformat [0]을 각각 1 또는 2로 바꾸십시오.

+0

귀하의 답변에 고마워. 그러나 나는 아주 기본적인 수준의 webAPI에 관한 한 질문을 가지고 있습니다. 내가 틀렸다면 ... 내가 iOS 녀석에게 할 말은 "이것은 URL입니다 : URL_OF_THIS_CALL POST 요청이며 JSON을 매개 변수에 넣고 그 AFMultipartFormData를 보낼 수 있습니다. 대답은 그 모든 것을 나를 위해 할 것인가? 만약 그것이 틀린 지 모르겠다. 내가 틀렸다면 나를 바로 잡는다. –

+0

당신의 API가 Content-Type으로 요청을 받아 들일 것이라는 내용의 iOS 개발자에게 제공 할 것이다 : multipart/form-data로 보내고 이미지를 다중 파트 형식 데이터 페이로드로 보내면 대답에 언급 된 내용을 얻을 수 있어야합니다. –

+0

요청이 실패했습니다 : 지원되지 않는 미디어 유형 (415)입니다. . –