1 -(void)uploadPhotoImageWithUrl:(NSString*)url 2 userIMID:(NSString*)userIMID 3 imageData:(NSData*)imageData 4 imageName:(NSString*)imageName{ 5 6 NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x"; 7 8 //根据url初始化request 9 NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] 10 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData 11 timeoutInterval:10]; 12 13 //分界线 --AaB03x 14 NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY]; 15 //结束符 AaB03x-- 16 NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary]; 17 18 19 //http body的字符串 20 NSMutableString *body=[[NSMutableString alloc]init]; 21 //参数的集合的所有key的集合 22 23 if(imageData){ 24 ////添加分界线,换行 25 [body appendFormat:@"%@\r\n",MPboundary]; 26 27 //声明pic字段,文件名为boris.png 28 [body appendFormat:@"Content-Disposition: form-data; name="%@"; filename="%@"\r\n",userIMID,imageName]; 29 //声明上传文件的格式 30 [body appendFormat:@"Content-Type: image/jpge,image/gif, image/jpeg, image/pjpeg, image/pjpeg\r\n\r\n"]; 31 } 32 33 //声明结束符:--AaB03x-- 34 NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary]; 35 //声明myRequestData,用来放入http body 36 NSMutableData *myRequestData=[NSMutableData data]; 37 38 //将body字符串转化为UTF8格式的二进制 39 [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]]; 40 if(imageData){ 41 //将image的data加入 42 [myRequestData appendData:imageData]; 43 } 44 //加入结束符--AaB03x-- 45 [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]]; 46 47 //设置HTTPHeader中Content-Type的值 48 NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY]; 49 //设置HTTPHeader 50 [request setValue:content 51 forHTTPHeaderField:@"Content-Type"]; 52 53 //设置Content-Length 54 [request setValue:[NSString stringWithFormat:@"%ld", (unsigned long)[myRequestData length]] 55 forHTTPHeaderField:@"Content-Length"]; 56 57 //设置http body 58 [request setHTTPBody:myRequestData]; 59 60 //http method 61 [request setHTTPMethod:@"POST"]; 62 63 64 // URLSession 65 NSURLSession *session = [NSURLSession sharedSession]; 66 // 上传任务 67 NSURLSessionUploadTask *task = [session uploadTaskWithRequest:request 68 fromData:myRequestData 69 completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 70 { 71 72 if (!data) { 73 NSString *result = [[NSString alloc] initWithData:data 74 encoding:NSUTF8StringEncoding]; 75 NSLog(@"%@ %@", result, response); 76 } else { 77 NSString *result = [[NSString alloc] initWithData:data 78 encoding:NSUTF8StringEncoding]; 79 NSLog(@"upload ok! %@ ", result); 80 } 81 }]; 82 83 [task resume]; 84 85 86 }