前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POST jpeg upload with AFNetworking

POST jpeg upload with AFNetworking

作者头像
阿新
发布2018-04-12 15:12:40
1.1K0
发布2018-04-12 15:12:40
举报
文章被收录于专栏:c#开发者
代码语言:javascript
复制
  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 <AFMultipartFormData>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]; 
代码语言:javascript
复制
+ (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;
}
代码语言:javascript
复制
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
NSMutableURLRequest *afRequest = [client multipartFormRequestWithMethod:@"POST"
                                                                           path:path
                                                                     parameters:[User parametersOfUser:user]
                                                      constructingBodyWithBlock:^(id<AFMultipartFormData> 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/*"];
                                                          }
                                                      }];
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-01-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档