iOS中使用POST向服务器发送图片文件
来源:互联网 发布:数据库开发用什么语言 编辑:程序博客网 时间:2024/05/22 12:21
#pragma mark -使用POST上传图片-//parmater:上传的参数 data:图片数据 name:保存后的文件名-(void)sendPost2:(NSString *)urlStr parmater:(NSDictionary *)parm data:(NSData*)data name:(NSString *)fileName{ //初始化要上传的数据 NSMutableData *dataM = [NSMutableData data]; //准备工作(规定好了的格式),事先规定好分隔符TEST_FORM_BOUNDARY NSString *strTop=[NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"file\"; filename=\"%@\"\r\nContent-Type: %@\r\n",TEST_FORM_BOUNDARY,fileName,@"image/png"]; NSLog(@"%@",strTop); [dataM appendData:BXEncode(strTop)]; [dataM appendData:BXEncode(@"\r\n")]; [dataM appendData:data]; [dataM appendData:BXEncode(@"\r\n")]; //遍历一遍字典参数,用block形式执行,会自动分配到多核cpu上运行 [parm enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { //参数开始的标志 NSString *boundry = [NSString stringWithFormat:@"--%@\r\n",TEST_FORM_BOUNDARY]; [dataM appendData:BXEncode(boundry)]; NSString *disposition = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n", key]; [dataM appendData:BXEncode(disposition)]; [dataM appendData:BXEncode(@"\r\n")]; [dataM appendData:BXEncode(obj)]; [dataM appendData:BXEncode(@"\r\n")]; }]; //尾部的分隔符 NSString *strBottom = [NSString stringWithFormat:@"--%@--\r\n",TEST_FORM_BOUNDARY]; [dataM appendData:BXEncode(strBottom)]; //请求设置 NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:dataM]; //设置上传数据的长度及格式 [request setValue:[NSString stringWithFormat:@"%lu",(unsigned long)dataM.length] forHTTPHeaderField:@"Content-Length"]; [request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@",TEST_FORM_BOUNDARY] forHTTPHeaderField:@"Content-Type"]; //上传 NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionUploadTask *task = [session uploadTaskWithRequest:request fromData:dataM completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { if (!error && data) { NSLog(@"response:%@",response); NSLog(@"data:%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); }else{ NSLog(@"error:%@",error); } }]; [task resume];}
0 0
- iOS中使用POST向服务器发送图片文件
- 使用python向服务器POST大文件
- 使用wininet向FTP服务器发送文件
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- Android使用HttpURLConnection向服务器发送post和get请求
- iOS 向服务器POST参数
- Android-向服务器发送图片
- 使用ASIHTTPRequest同时向服务器发送多张图片
- 使用TCP协议实现客户端向服务器发送图片
- 模拟Post向服务器发送bean
- NSURLConnection 向服务器发送post请求
- post请求向服务器发送数据
- java中使用scoket模拟http post请求发送图片或文件
- java中使用scoket模拟http post请求发送图片或文件
- java中使用scoket模拟http post请求发送图片或文件
- 占座
- JavaScript:this 的工作原理
- 编写一个函数,返回一个int数组中存储的最大数值,并在一个简单的程序中测试这个函数。(有缺陷)
- Java面试之一+=赋值符号的使用
- Material Design之TextInputLayout使用示例
- iOS中使用POST向服务器发送图片文件
- poj3469 Dual Core CPU 网络流 sap邻接表模板
- iOS 高级绘图之路径剪切
- 杭电5620 KK's Steel
- 通过控制台一行行读取数据
- 【ChargeSystem】——总结
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- android图像变为黑白
- iOS UIBezierPath 路径裁剪