IOS使用NSURLConnection实现文件上传
2015-04-24 11:20
363 查看
//字典里面装的是你要上传的内容 NSDictionary *parameters = @{@"content": @"此为内容"}; NSString *strURL = [NSString stringWithFormat:@"%@/Upload.php",SERVER_HOST]; //分界线的标识符 NSString *TWITTERFON_FORM_BOUNDARY = @"---------------------------JHMLY622510"; //根据url初始化request NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strURL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10]; //分界线 NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY]; //结束符 NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary]; // //要上传的图片 // UIImage *image=[params objectForKey:@"pic"]; //得到图片的data NSData *data = UIImagePNGRepresentation(nil); //http body的字符串 NSMutableString *body=[[NSMutableString alloc]init]; //参数的集合的所有key的集合 NSArray *keys= [parameters allKeys]; //遍历keys for(int i=0;i<[keys count];i++) { //得到当前key NSString *key=[keys objectAtIndex:i]; //如果key不是pic,说明value是字符类型,比如name:Boris if(![key isEqualToString:@"pic"]) { //添加分界线,换行 [body appendFormat:@"%@\r\n",MPboundary]; //添加字段名称,换2行 [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key]; //添加字段的值 [body appendFormat:@"%@\r\n",[parameters objectForKey:key]]; } } ////添加分界线,换行 [body appendFormat:@"%@\r\n",MPboundary]; //声明pic字段,文件名为boris.png [body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"boris.png\"\r\n"]; //声明上传文件的格式 [body appendFormat:@"Content-Type: image/png\r\n\r\n"]; //声明结束符:--AaB03x-- NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary]; //声明myRequestData,用来放入http body NSMutableData *myRequestData=[NSMutableData data]; //将body字符串转化为UTF8格式的二进制 [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]]; //将image的data加入 [myRequestData appendData:data]; //加入结束符-- [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]]; //设置HTTPHeader中Content-Type的值 NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY]; //设置HTTPHeader [request setValue:content forHTTPHeaderField:@"Content-Type"]; //设置Content-Length [request setValue:[NSString stringWithFormat:@"%d", (int)[myRequestData length]] forHTTPHeaderField:@"Content-Length"]; //设置http body [request setHTTPBody:myRequestData]; //http method [request setHTTPMethod:@"POST"]; //建立连接,设置代理 NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; //设置接受response的data if (conn) { }
相关文章推荐
- iOS开发之网络编程--使用NSURLConnection实现文件上传
- iOS学习笔记70-使用NSURLConnection实现文件上传
- iOS开发之网络编程--使用NSURLConnection实现大文件下载
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
- ios下使用AFNetworking通过Nginx服务器实现大文件上传
- iOS开发-使用NSURLSession实现文件断点下载,文件离线续传以及图片上传
- iOS开发-使用AFN实现GET/POST请求,以及文件下载/文件(图片)上传
- iOS开发 使用NSURLConnection实现图片上传
- iOS开发 使用NSURLConnection实现下载文件
- iOS-网络-NSURLConnection实现文件的上传
- iOS-网络-NSURLConnection实现文件下载
- iOS-网络-NSURLSessionDataTask实现文件上传
- Android使用OKHttp库实现视频文件的上传到服务器功能
- 使用MultipartFile实现文件上传
- 使用Servlet3.0提供的API实现文件上传
- jsp+servlet实现文件上传(不使用任何组件和框架)