2013-08-28 8 views
9

मैं कुछ छवियों को सर्वर में अपलोड करना चाहता हूं, इसलिए मैं फ़ाइलों को पोस्ट करने के लिए AFNetWork का उपयोग करता हूं। कोड यहाँ है:AFNetworking एकाधिक फाइलें अपलोड करें

UIImage *image1 = [UIImage imageNamed:@"about_app"]; 
UIImage *image2 = [UIImage imageNamed:@"alter"]; 
NSArray *array = @[image1,image2]; 
__block int i = 0; 
NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ 
for(UIImage *eachImage in array) 
{ 
    NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); 
    [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"abc%d.jpg",i ] mimeType:@"image/jpeg"]; 
    i++; 
} 
}]; 

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){.....} 

यह काम नहीं कर रहा है! लेकिन जब मैं multipartFormRequestWithMethod विधि के अंदर "के लिए" कथन को प्रतिस्थापित करने के लिए नीचे दिए गए कोड का उपयोग करता हूं, तो सब कुछ ठीक हो गया! लेकिन अगर मैं छवि सरणी की गिनती की पुष्टि नहीं कर सका, तो मुझे "कोड" कथन का उपयोग करना होगा, मेरे कोड में कुछ गड़बड़ है?

[formData appendPartWithFileData:UIImageJPEGRepresentation([array objectAtIndex:0], 0.5) name:@"image1" fileName:@"image1.jpg" mimeType:@"image/jpeg"]; 
[formData appendPartWithFileData:UIImageJPEGRepresentation([array objectAtIndex:1], 0.5) name:@"image2" fileName:@"image2.jpg" mimeType:@"image/jpeg"]; 

उत्तर

12

ब्लॉक के अंदर परिवर्तनीय i रखें। abc से file पर फ़ाइल का नाम भी बदल दिया।

UIImage *image1 = [UIImage imageNamed:@"about_app"]; 
UIImage *image2 = [UIImage imageNamed:@"alter"]; 
NSArray *array = @[image1,image2]; 

NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ 
int i = 0; 
for(UIImage *eachImage in array) 
{ 
    NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); 
    [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"file%d.jpg",i ] mimeType:@"image/jpeg"]; 
    i++; 
} 
}]; 
4

बस पाश वाक्य रचना

UIImage *image1 = [UIImage imageNamed:@"about_app"]; 
    UIImage *image2 = [UIImage imageNamed:@"alter"]; 
    NSArray *array = @[image1,image2]; 

    NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ 
    for(int i=0;i<[array count];i++) 
    { 
     UIImage *eachImage = [array objectAtIndex:i]; 
     NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); 
     [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"abc%d.jpg",i ] mimeType:@"image/jpeg"]; 
    } 
    }]; 

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){.....} 
+0

अगर मैं एक चाहते * * नाम ** एकाधिक फाइलें हो सकती है? – chenzhongpu

-3

के लिए बदलने के सर्वर से फ़ाइल के किसी भी प्रकार, माइम प्रकार के रूप में सेट अपलोड करने के लिए -> फ़ाइल/*

[formData appendPartWithFileData:Data 
          name:@"keyName" 
          fileName:@"yourFileName"  
          mimeType:@"file/*"]; 
+0

जो आपने उत्तर दिया है वह वह नहीं है जो मैंने पूछा था। – lixiaoyu

संबंधित मुद्दे