博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POST jpeg upload with AFNetworking
阅读量:6885 次
发布时间:2019-06-27

本文共 5736 字,大约阅读时间需要 19 分钟。

NSData* sendData = [self.fileName.text dataUsingEncoding:NSUTF8StringEncoding];    NSDictionary *sendDictionary = [NSDictionary dictionaryWithObject:sendData forKey:@"name"];    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:remoteUrl];    NSMutableURLRequest *afRequest = [httpClient multipartFormRequestWithMethod:@"POST"                                                                            path:@"/photos"                                                                      parameters:sendDictionary                                                       constructingBodyWithBlock:^(id 
formData) { [formData appendPartWithFileData:photoImageData name:self.fileName.text fileName:filePath mimeType:@"image/jpeg"]; } ]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:afRequest]; [operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) { NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite); }]; [operation setCompletionBlock:^{ NSLog(@"%@", operation.responseString); //Gives a very scary warning }]; [operation start];

 

+ (NSDictionary*)parametersOfUser:(User*)user{    if (user) {        NSMutableDictionary *returnDict = [NSMutableDictionary dictionaryWithCapacity:0];        if (user.userId && [user.userId length]) {            [returnDict setObject:[user.userId urlEncoded] forKey:@"userId"];        }                if (user.userName && [user.userName length]) {            [returnDict setObject:[user.userName urlEncoded] forKey:@"userName"];        }        if (user.phone && [user.phone length]) {            [returnDict setObject:[user.phone urlEncoded] forKey:@"phone"];        }        if (user.email && [user.email length]) {            [returnDict setObject:[user.email urlEncoded] forKey:@"email"];        }                [returnDict setObject:[user.deviceId urlEncoded] forKey:@"deviceId"];        [returnDict setObject:[user.deviceType urlEncoded] forKey:@"deviceType"];        [returnDict setObject:[user.osName urlEncoded] forKey:@"osName"];        [returnDict setObject:[user.osVersion urlEncoded] forKey:@"osVersion"];                if (user.pinCodeHash && [user.pinCodeHash length]) {            [returnDict setObject:[user.pinCodeHash urlEncoded] forKey:@"pinCodeHash"];        }        if (user.publicKey && [user.publicKey length]) {            [returnDict setObject:[user.publicKey urlEncoded] forKey:@"publicKey"];        }                return returnDict;    }return nil;}
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];NSMutableURLRequest *afRequest = [client multipartFormRequestWithMethod:@"POST"                                                                           path:path                                                                     parameters:[User parametersOfUser:user]                                                      constructingBodyWithBlock:^(id
formData) { /** *@discussion If we use multipart, we should only have two parts, one for picture (probably type is image/png) and one for other parameters (type is x-www-form-urlencoded) */ //header /* NSString *bodyString = [User postBodyStringWithUser:user withPostType:PostTypeMultiPart]; NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"application/x-www-form-urlencoded; charset=UTF-8",@"Content-Type", [NSString stringWithFormat:@"form-data; name=\"%@\"", @"usr_info"],@"Content-Disposition" , nil]; [formData appendPartWithHeaders:headers body:[bodyString dataUsingEncoding:NSUTF8StringEncoding]]; */ //picture part if (user.picture2) { NSData *data = UIImagePNGRepresentation(user.picture2); //NSLog(@"=====data length is %i",[data length]); [formData appendPartWithFileData:data name:@"picture2" fileName:nil mimeType:@"image/*"]; } }];

 

转载地址:http://cttbl.baihongyu.com/

你可能感兴趣的文章
ubuntu redis 安装 &基本命令
查看>>
迅速读懂:Effective STL (二)
查看>>
九章算术卷第七 盈不足
查看>>
spring +springmvc+mybatis组合applicationContext.xml文件配置
查看>>
2018年4月17日笔记
查看>>
2440-串行口
查看>>
283-移动零
查看>>
nodejs+express+mongodb写api接口的简单尝试
查看>>
grub密码
查看>>
说好的不熬夜呢???!!!! -- 超市项目
查看>>
Apache遇到的问题:APR not found
查看>>
运行webpack-dev-srerver 端口占用错误及解决办法
查看>>
html-php深入理解
查看>>
第 11 章 日志管理 - 088 - Docker 如何支持多种日志方案?
查看>>
课后作业-----输入法评价
查看>>
使用qemu
查看>>
静态页之间传值
查看>>
01.Hibernate快速入门
查看>>
ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法
查看>>
人事管理系统——11个基础信息管理界面
查看>>