• POST jpeg upload with AFNetworking


      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]; 
    + (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<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/*"];
                                                              }
                                                          }];
  • 相关阅读:
    ◆◆0[代码]基于动态内表的ALV
    SALV教程19-自定义按钮事件(EVENT)[added_function]
    创建list ALV tree[RS_TREE_LIST_DISPLAY]
    ◆◆0REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格
    ◆◆0SALV的一些限制和注意事项汇总
    ◆◆0SALV教程20-单元格可编辑
    REUSE_ALV_GRID_DISPLAY_LVC-双击事件’&IC1′
    ◆◆0REUSE_ALV_GRID_DISPLAY_LVC-行选择功能
    [代码]REUSE_ALV_GRID_DISPLAY_LVC-代码模板
    ◆◆0[问题解决]ALV可输入状态下输入金额/数量字段小数位数提前的问题
  • 原文地址:https://www.cnblogs.com/neozhu/p/2867569.html
Copyright © 2020-2023  润新知