Skip to content

Instantly share code, notes, and snippets.

@arturlector
Last active March 23, 2016 22:22
Show Gist options
  • Save arturlector/d5f47be1811a2aa8833b to your computer and use it in GitHub Desktop.
Save arturlector/d5f47be1811a2aa8833b to your computer and use it in GitHub Desktop.
Upload image.
- (void)uploadImage:(UIImage *)image
{
//    [self requestUploadImage:image andBlock:^(NSDictionary *responseDict) {
//        DLog(@"RESPONSE = %@", responseDict);
//    }];
    /*
    NSData *imageData = UIImagePNGRepresentation(image);
     [[IGSBackendManager sharedInstance] postTemplateUrlWithMultipartData:imageData
     withUrl:@"/api/File/Upload"
     withName:@"file"
     andBlock:^(NSDictionary *responseDict) {
     DLog(@"responseDict = %@", responseDict);
     }];
    */
    //[self uploadPhoto:image];
    /*
    [[IGSBackendManager sharedInstance] requestUploadImage:image andBlock:^(NSDictionary *responseDict) {
        DLog(@"RESPONSE = %@", responseDict);
    }];
     */
}
/*
- (void)getImageByGuid:(NSString *)guid withBlock:(void(^)(UIImage *image))completion {

    //@"7566ad07-a63e-40fa-8dcf-7265759ae770",
    NSDictionary *params = @{
                            @"fileId": guid
                            };
    
    [[IGSBackendManager sharedInstance]getTemplateUrl:@"api/File/Get"
                                          paramsDict:params
                                            andImageBlock:^(UIImage *imageObject) {
                                                DLog(@"RESPONSE = %@", imageObject);
                                                completion(imageObject);
                                            }];
}
 */
 //НЕАКТИВНАЯ!!!
- (AFHTTPRequestOperation *)requestUploadImage:(UIImage *)image andBlock:(void (^)(NSDictionary *responseDict))successBlock
{
    //DLog(@"HEADERS = %@", self.manager.requestSerializer.HTTPRequestHeaders);
    
    //NSString *kBaseURLString = @"http://ppdev.igstest.ru";
    //NSString *kUploadImage = @"/api/File/Upload";
    
    NSData *imageData = UIImagePNGRepresentation(image);
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[kBaseURLString stringByAppendingString:kFileUpload]]];
    
    NSString *authorizationToken = [IGSAuthorizationManager sharedInstance].accessToken.AccessToken;
    
    
    if ([authorizationToken length] > 5) {
        [request setValue:[NSString stringWithFormat:@"%@ %@", @"bearer", authorizationToken]
         forHTTPHeaderField:@"Authorization"];
    }
    else {
        [request setValue:@"bearer" forHTTPHeaderField:@"Authorization"];
    }
    
    request.HTTPMethod = @"POST";
    
    NSString *boundary = @"----WebKitFormBoundarycC4YiaUFwM44F6rT";
    
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
    
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"];
    
    NSMutableData *body = [NSMutableData data];
    
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"attachment[file]\";filename=\"picture.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
    [body appendData:[NSData dataWithData:imageData]];
    
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body];
    
    NSString *strData = [[NSString alloc]initWithData:body encoding:NSUTF8StringEncoding];
    DLog(@"BODY = %@",strData);
    
    DLog(@"REQUEST HEADERS = %@", request.allHTTPHeaderFields.debugDescription);
    DLog(@"REQUEST HEADERS = %@", request.allHTTPHeaderFields);
    
    AFHTTPRequestOperation *operation =
    [self.manager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject)
    {
        
        NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseObject
                                                                 options:NSJSONReadingAllowFragments
                                                                   error:nil];
                                                                                  
        if (successBlock) {
            successBlock(jsonDict);
        }
        else {
            if (successBlock) {
                  successBlock(nil);
            }
        }
        
      }
      failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
          DLog(@"%@ Error: %@", [operation.request.URL lastPathComponent], error);
          
          if (successBlock)
          {
              successBlock(nil);
          }
    }];
    
    [self.manager.operationQueue addOperation:operation];
    return operation;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment