2017-08-02 16 views
0

何度も尋ねられます。しかし、私はいくつかの問題に直面している私は複数の画像をサーバーに送信したい。シナリオは、私は複数の画像の選択のためのカスタムサードパーティのライブラリを使用しているということです。ユーザが画像を選択すると、画像はアレイ状になる。配列には2つのタイプがあり、1番目の配列はユーザ​​ーが選択する画像の名前を持ちますが、2番目の画像のファイルパス配列は2番目です。配列には配列パスが含まれています。私は3つのパラメータを持っていますが、POSTリクエスト1は画像名の配列が来る名前、2はID、これらの画像が送られるID、3は画像の画像です。私のコードでは、私はAFHTTPRequestOperationManagerを使用していますが、私はこのクラスは私のプロジェクトで使用されたAFNetworkkフォルダにヘッダファイルを持っていなかったヘッダーファイルにエラーが発生しています。私のコードは、これは、IOSでAFNetworkingを使用して複数の画像をアップロード

-(void)Images{ 

AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"My URL"]]; 
int i=0; 
for(UIImage *eachImage in _arrai) 
{ 
    NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"mainImage"]); 
    [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"file%d.jpg",i ] mimeType:@"image/jpeg"]; 
    i++; 
} 

NSDictionary *parameters = @{@"name":_arrainame, @"property_id" : Propid, @"image" : _arrai}; 
AFHTTPRequestOperation *op = [manager POST:@"mainImage" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    //do not put image inside parameters dictionary as I did, but append it! 
    [formData appendPartWithFileData:imageData name:@"userfile" fileName:@"cat1.png" mimeType:@"image/png"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
} failure:^(AFHTTPRequestOperation operation, NSError error) { 
    NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
}]; 
[op start]; 

}

+0

は、あなたが最初にこのURLに郵便配達を使用してみましたが、これを試してみてくださいますか?それが動作していることを確認しますか? –

+0

あなたは同じパラメタで送信したいですか? – vp2698

+0

はい同じパラメータです。 @ vp2698 –

答えて

0
NSDictionary *parameters = @{@"name":_arrainame, @"property_id" : Propid}; 

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    int i=0; 
    for(NSString *eachImagePath in _arrai) 
    { 

     NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:eachImagePath]; 
     [formData appendPartWithFileURL:fileURL name:@"imageParamter" fileName:[NSString stringWithFormat:@"file%d.jpg",i ] mimeType:@"image/jpeg" error:nil]; 
     i++; 
    } 
} error:nil]; 


AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 

NSURLSessionUploadTask *uploadTask; 
uploadTask = [manager 
       uploadTaskWithStreamedRequest:request 
       progress:nil 
       completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 
        if (error) { 
         NSLog(@"Error: %@", error); 
        } else { 
         NSLog(@"%@ %@", response, responseObject); 
        } 
       }]; 

[uploadTask resume]; 

+0

あなたはどのインポートファイルを使うべきか教えてください。 #import ""? @ vp2698 –

+0

「AFNetworking.h」 – vp2698

+0

をインポートすると、そのAFHTTPRequestOperationManagerの宣言されていない識別子が表示されます。 @ vp2698 –

関連する問題