关于 ios post 方式上传 文件的问题
来源:互联网 发布:openstack 数据库服务 编辑:程序博客网 时间:2024/06/08 08:36
- (IBAction)commitData:(UIButton *)sender {
//分界线的标识符
NSString *TWITTERFON_FORM_BOUNDARY =@"AaB03x";
//根据url初始化request
NSMutableURLRequest* request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:@"http://192.168.15.66/Cn66law_Biz.Host.Wapi/api/LawChat/UploadTask"]];
//分界线 --AaB03x
NSString *MPboundary=[[NSStringalloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
//结束符 AaB03x--
NSString *endMPboundary=[[NSStringalloc]initWithFormat:@"%@--",MPboundary];
//http body的字符串
NSMutableString *body=[[NSMutableStringalloc]init];
NSData *imgData=UIImageJPEGRepresentation(self.imageView.image,0.5);
NSMutableDictionary *params = [NSMutableDictionarydictionary];
params[@"tag"] =@1;
//参数的集合的所有key的集合
NSArray *keys= [paramsallKeys];
//遍历keys
for(int i=0;i<[keyscount];i++)
{
//得到当前key
NSString *key=[keysobjectAtIndex:i];
//如果key不是pic,说明value是字符类型,比如name:Boris
if(![keyisEqualToString:@"pic"])
{
//添加分界线,换行
[body appendFormat:@"%@\r\n",MPboundary];
//添加字段名称,换2行
[body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
//添加字段的值
[body appendFormat:@"%@\r\n",[paramsobjectForKey: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=[[NSStringalloc]initWithFormat:@"\r\n%@",endMPboundary];
//声明myRequestData,用来放入http body
NSMutableData *myRequestData=[NSMutableDatadata];
//将body字符串转化为UTF8格式的二进制
[myRequestData appendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];
//将image的data加入
[myRequestData appendData:imgData];
//加入结束符--AaB03x--
[myRequestData appendData:[enddataUsingEncoding:NSUTF8StringEncoding]];
//设置HTTPHeader中Content-Type的值
NSString *content=[[NSStringalloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
//设置HTTPHeader
[request setValue:contentforHTTPHeaderField:@"Content-Type"];
//设置Content-Length
[request setValue:[NSStringstringWithFormat:@"%lu", (unsignedlong)[myRequestData length]]forHTTPHeaderField:@"Content-Length"];
//设置http body
[request setHTTPBody:myRequestData];
//http method
[request setHTTPMethod:@"POST"];
NSOperationQueue *queue=[[NSOperationQueuealloc] init];
[NSURLConnectionsendAsynchronousRequest:request queue:queue
completionHandler:^(NSURLResponse *respone,
NSData *data,
NSError *error)
{
if ([datalength]>0 && error==nil) {
NSString *jsonstring=[[NSStringalloc] initWithData:dataencoding:NSUTF8StringEncoding];
//[self.respondTextView setText:jsonstring];
NSLog(@"data:%@",jsonstring);
//[self performSelectorOnMainThread:@selector(setRespondtext:)withObject:jsonstring waitUntilDone:YES modes:nil];
//[self performSelectorOnMainThread:@selector(setRespondtext:) withObject:data waitUntilDone:NO];
}
}
];
}
- 关于 ios post 方式上传 文件的问题
- IOS post方式上传文件
- [绍棠] iOS post方式上传文件
- iOS POST 文件的上传
- 关于通过http post进行文件上传的问题
- 关于post文件上传不能返回路径问题的解决方案
- POST方式上传文件
- (三)glassfish的post方式上传文件
- Java的Post方式上传文件
- iOS post上传文件
- iOS中POST上传文件的实现
- HTTP POST的文件上传问题
- jersey post方式上传文件
- Python -- post方式上传文件
- http post方式上传文件
- 基于libcap的网络包分析问题集锦(http post方式上传文件)
- 基于libcap的网络包分析问题集锦续(http post方式上传文件)
- PHP CURL POST方式上传文件中遇到的问题及解决方案
- 字符串基本处理操作:数组和指针实现 —— 不调用string函数库
- 更新alertDialog的Textview
- 滑动窗口在storm中的实现
- HTML中的滚动效果和text输入文字点击消失效果
- FileOutputStream之断点续传
- 关于 ios post 方式上传 文件的问题
- Android使用ProGuard进行代码混淆
- Java中的List
- 【Android】使用Wifi连接ADB调试App
- UISearchBar和UISearchDisplayController
- 软件项目管理(CMMI成熟度)实践——之决策分析(2)
- string 与char* char[]之间的转换
- 任汇添富获得丰厚的后果
- AndroidWear官方文档总结03 - 连接手持设备与穿戴设备模拟器到开发环境