2012-04-17 7 views
1

웹 페이지에 파일을 게시하는 것처럼 ASP.NET MVC 서버 구성 요소에 이미지를 업로드하려는 iOS 응용 프로그램을 구축하고 있습니다.iOS에서 ASP.NET으로 이미지 파일을 업로드하는 데 사용할 요청 헤더는 무엇입니까?

iOS에서 NSMutableURLRequest 및 NSConnection 개체를 만들고 .NET 서버 구성 요소가 작동하는지 확인했습니다.

NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init]; 
[request setTimeoutInterval:(interval==0?SERVICE_DEFAULT_TIMEOUT_INTERVAL:interval)]; 
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",SERVICE_BASEURL,url]]]; 
[request setHTTPMethod:@"POST"]; 
... 

화상 데이터는 .NET 성분 컨트롤러 방법은 목표 전송하는

[HttpPost] 
public JsonResult UploadMedia(HttpPostedFileBase fileData) 
{ 
... 
    return Json(@"Success"); 
} 

하는 서버에 AVFoundation 모듈

NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer]; 

에서있는 NSData 객체에 이미지 데이터를 서버에 저장하고 저장하십시오. 내 질문 :

  1. 다른 HttpHeaderField 값을 만들어야합니까?
  2. 이미지 데이터를 NSMutableURLRequest에 어떻게 포함해야합니까?
  3. .NET 구성 요소 메서드에서 매개 변수 여야 할 형식은 무엇입니까?
  4. # 3의 유형에 따라 서버 구성 요소에서 이미지 데이터를 어떻게 추출해야합니까?
+1

는 HTML 양식 파일 업로드와 달리 파일이 파일이 자동 HttpPostedFileBase의 인스턴스로 컨트롤러 메소드에 전달되지 않은 .NET에서 아이폰 OS에서 오는 것으로 밝혀졌습니다. HttpContext.Request.Files 속성을 사용하여 액세스해야합니다. – ChrisP

+0

.net에서이 문제를 얻지 못했습니까? [InvalidOperationException] : 개체의 현재 상태로 인해 작업이 유효하지 않습니다. 나는 그것에 관하여 somecings를 읽고 심지어는 키를 추가 aspnet : MaxHttpCollectionKeys aspnet : MaxJsonDeserializerMembers 계속 동일한 결과를 얻는 중 ... – dwbrito

답변

1

게시자는 데이터에 여러 부분으로 구성된 양식 데이터를 게시 할 수 있습니다.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
             cachePolicy:NSURLRequestUseProtocolCachePolicy 
                timeoutInterval:600]; 

request.HTTPMethod = @"POST"; 

NSString *boundry = @"---------------AF7DAFCDEFAB809"; 
NSMutableData *data = [NSMutableData dataWithCapacity:300 * 1024]; 

[data appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"image.jpg\"\r\n\r\n", @"field name"] 
          dataUsingEncoding:NSUTF8StringEncoding]]; 
[data appendData:imgdata]; // data upload 
[data appendData:[[NSString stringWithString:@"\r\n"] 
          dataUsingEncoding:NSUTF8StringEncoding]]; 

[data appendData:[[NSString stringWithFormat:@"--%@\r--\n",boundry] 
        dataUsingEncoding:NSUTF8StringEncoding]]; 

request.HTTPBody = data;