之前一直在用AFNetwork作为上传图片,但是这次遇到一个问题,怎么提交都提交不上去。后来看了下后台的代码,发现有些参数是从host_url截取下来的,有些参数是从post上提交的,于是自己写了一个上传Image的代码专门对应这种情况。直接上代码:
//header
NSString *key = @"xxxxxxxx";
NSString*str = [NSString stringWithFormat:@"%@?type=%@&keystr=%@",HOST_SERVER,UpdateLoginPersonelInfo,key];
NSURL*url = [NSURLURLWithString:str];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//body
request.HTTPMethod=@"POST";
NSString*postStr = [NSString stringWithFormat:@"loginUserID=%@&isCompany=%@&moduleType=%@&headPortrait=%@",[WDLoginTool shareNetworkTools].username,[WDLoginTool shareNetworkTools].isCompany,[WDLoginTool shareNetworkTools].moduleType,portrait];
request.HTTPBody = [postStr dataUsingEncoding:NSUTF8StringEncoding];
[NSURLConnectionsendAsynchronousRequest:requestqueue:[[NSOperationQueuealloc]init]completionHandler:^(NSURLResponse*response,NSData*data,NSError*connectionError) {
if(connectionError ==nil) {
// 将Data转换成字符串
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
if([[dicsafeStringValueForKey:@"result"]isEqualToString:@"success"]) {
// 更新界面
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[FFToast showToastWithTitle:@"提示" message:@"图片上传成功!" iconImage:nil duration:3.0f toastType:FFToastTypeSuccess];
NSString*path = [dicsafeStringValueForKey:@"path"];
NSString*photo = [NSStringstringWithFormat:@"%@%@",HOST_SERVER_WINDAKE,path];
[[NSUserDefaults standardUserDefaults] setObject:photo forKey:@"WDLoginPortrait"];
[[NSUserDefaults standardUserDefaults] synchronize];
[WDLoginToolshareNetworkTools].portraitURL= photo;
[self.navigationControllerpopViewControllerAnimated:YES];
}];
}else{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[FFToastshowToastWithTitle:@"提示"message:@"上传失败,请稍后重试!"iconImage:nilduration:3.0ftoastType:FFToastTypeError];
}];
}
}else{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[FFToastshowToastWithTitle:@"提示"message:@"上传失败,请稍后重试!"iconImage:nilduration:3.0ftoastType:FFToastTypeError];
}];
}
}];