2012-04-17 1 views
1

私は、Webページのファイルの投稿のように、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

は、ファイルが.NETでのiOSから来るときHTML形式ファイルのアップロードとは異なり、ファイルは自動的にHttpPostedFileBaseのインスタンスとしてのコントローラメソッドにルーティングされていないことが判明します。 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; 
関連する問題