// 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