// URL
NSString *strURL = [SiteAPIURL stringByAppendingFormat:@"AddChild.php"];
// field values to post [text]
NSDictionary *parameterToAdd = @{@"UserId":userID,
@"ChildFName":[txtViewFName.text trim],
@"ChildLName":[txtViewLName.text trim],
@"SafetyZone":isSafetyZone?@"YES":@"NO",
@"AlarmTone":lblAlarmToneName.text,
@"ChildId":@"0"};
// image to post [Data / image ] ==>>is used to send image;
UIImage *imgToSend = imgViewPickerPhoto.image;
[postBody appendData:[@"Content-Disposition: form-data; name=\"Image\"; filename=\"image.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
whole code
- (void)btnSavePressed { pro(@"save pressed"); if ([self validateForm]) { [mainWindow addSubview:HUD]; [HUD showWhileExecuting:@selector(sendAddChildInfoToServer) onTarget:self withObject:nil animated:YES]; } } - (BOOL)validateForm { if ([Validate isNull:txtViewFName.text]) { [CommonFunctions AlertWithMsg:@"Please enter a first name."]; } else if ([Validate isNull:txtViewLName.text]) { [CommonFunctions AlertWithMsg:@"Please enter a last name."]; } else { return YES; } return NO; } - (void)sendAddChildInfoToServer { NSString *strURL = [SiteAPIURL stringByAppendingFormat:@"AddChild.php"]; pro(strURL); NSDictionary *parameterToAdd = @{@"UserId":userID, @"ChildFName":[txtViewFName.text trim], @"ChildLName":[txtViewLName.text trim], @"SafetyZone":isSafetyZone?@"YES":@"NO", @"AlarmTone":lblAlarmToneName.text, @"ChildId":@"0"}; UIImage *imgToSend = imgViewPickerPhoto.image; //setup url NSURL *siteURL = [[NSURL alloc] initWithString:[strURL stringByURLEncode]]; // create the connection NSMutableURLRequest *siteRequest = [NSMutableURLRequest requestWithURL:siteURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]; [siteRequest setHTTPMethod:@"POST"]; NSMutableData *postBody = [NSMutableData data]; // set Content-Type in HTTP header NSString *boundary = @"---------------------------14737809831466499882746641449"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [siteRequest setValue:contentType forHTTPHeaderField: @"Content-Type"]; // add params (all params are strings) for (NSString *param in parameterToAdd) { [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"%@\r\n", parameterToAdd[param]] dataUsingEncoding:NSUTF8StringEncoding]]; } ////---- add image if (isHasImage && imgToSend) { // add image data NSData *imageData =UIImageJPEGRepresentation(imgToSend, 0); if (imageData) { [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"Content-Disposition: form-data; name=\"Image\"; filename=\"image.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:imageData]; [postBody appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; } } [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; // add body to post [siteRequest setHTTPBody:postBody]; [siteRequest setValue:[NSString stringWithFormat:@"%u", [postBody length]] forHTTPHeaderField:@"Content-Length"]; NSURLResponse *response; NSError *error; if ([CommonFunctions isNetworkConnect]) { NSData *returnData = [NSURLConnection sendSynchronousRequest:siteRequest returningResponse:&response error:&error]; NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; returnString = [returnString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; if (![NSThread isMainThread]) { dispatch_sync(dispatch_get_main_queue(), ^{ if (!error && returnString) { NSError *error; NSDictionary *dic= [NSJSONSerialization JSONObjectWithData:[returnString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&error]; NSLog(@"%@, error %@",dic,error); if (dic && !error) { // play with dic : server response if ([dic[@"Response"] isEqualToString:@"success"]) { // do something [CommonFunctions AlertWithMsg:dic[@"Message"]]; } else if ([dic[@"Response"] isEqualToString:@"failure"]) { [CommonFunctions AlertWithMsg:dic[@"Message"]]; } else { [CommonFunctions serverInternalError]; } } else { [CommonFunctions showServerNotFoundError]; } } else{ [CommonFunctions showServerNotFoundError]; } }); } } }
No comments:
Post a Comment