2017-04-07 1 views
0

다른 매개 변수와 함께 이미지 배열을 업로드하는 방법 이미지는 장치 카메라로 캡처되므로 업로드해야합니다. 아래 지금까지 해봤 코드 :다른 매개 변수와 함께 여러 이미지 업로드

을 NSData로 캡처 한 이미지를 변환 : 서버에

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    arrayOfImages = [userDefaults objectForKey:@"image"]; 

업로드 이미지 :

 NSDictionary *params [email protected]{ @"name":self->Name.text, @"contact_no":self->ContactNo.text,@"email_id":self->EmailId.text,@"s_date":Date,@"s_time":Time,@"streat":Street,@"city":City,@"state":State,@"zip":ZipCode}; 

NSData *uploadData = Data; 
NSString *urlString = [NSString stringWithFormat:@"url"];  

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"POST"]; 

NSString *boundary = @"---------------------------14737809831466499882746641449"; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
[request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 
NSString *kNewLine = @"\r\n"; 

NSMutableData *body = [NSMutableData data]; 

for (NSString *name in params.allKeys) { 

    NSData *values = [[NSString stringWithFormat:@"%@", params[name]] dataUsingEncoding:NSUTF8StringEncoding]; 

    [body appendData:[[NSString stringWithFormat:@"--%@%@", boundary, kNewLine] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"", name] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [body appendData:[[NSString stringWithFormat:@"%@%@", kNewLine, kNewLine] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:values]; 
    [body appendData:[kNewLine dataUsingEncoding:NSUTF8StringEncoding]]; 
} 

     for(int i = 0; i < arrayOfImages.count ; i++) 
     { 
      uploadData = [arrayOfImages objectAtIndex:i]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file_name[]\""] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[NSData dataWithData:uploadData]]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
     } 
[request setHTTPBody:body]; 
[request setHTTPBody:body]; 

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
           { 
            NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
            NSLog(@"%@",returnString); 

}]; 

for(int i = 0 ; i< imageArray.count ; i++) 
    { 
     UIImage *images = [imageArray objectAtIndex :i]; 
     NSData *Datas = UIImagePNGRepresentation(images); 
     [Images addObject:Datas]; 

    } 

하는 이미지의 저장 배열을 검색

PHP 코드 :

,210
$filesCount = count($_FILES['file_name']['name']); 

for($i = 0; $i < $filesCount; $i++){ 

$_FILES['file_name1']['name'] = time().'_'.$_FILES['file_name']['name'][$i]; 
$_FILES['file_name1']['type'] = $_FILES['file_name']['type'][$I]; 
$_FILES['file_name1']['tmp_name'] = $_FILES['file_name']['tmp_name'][$i]; 
$_FILES['file_name1']['error'] = $_FILES['file_name']['error'][$i]; 
$_FILES['file_name1']['size'] = $_FILES['file_name']['size'][$i]; 


    $config['upload_path'] = $upload_path; 
    $config['allowed_types'] = '*'; 

$this->load->library('upload'); 
      $this->upload->initialize($config); 
      if($this->upload->do_upload('file_name1')){      
       $upload_data = $this->upload->data(); 
$name_array[] = $upload_data['file_name']; 
$fileName = $upload_data['file_name']; 
$images[] = $fileName; 
      }else{ 
    $data['upload_errors'][$i] = $this->upload->display_errors(); 
} 


    } 

답변

0
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@“Your url”]]; 
     [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 
    manager.responseSerializer.acceptableStatusCodes = [NSIndexSet indexSetWithIndex:200]; 
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html", nil]; 
    AFHTTPRequestOperation *operation = [manager POST:@"url"parameters:_paramaters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
             { 
              [formData appendPartWithFileData:imagedata name:@"filename" fileName:@"filename.jpg" mimeType:@"image/jpeg"]; 
             } 
               success:^(AFHTTPRequestOperation *operation, id responseObject) 
             { 
                     } 
               failure:^(AFHTTPRequestOperation *operation, NSError *error) 
             { 
                     }]; 

    [operation start]; 

는 대신 AFHTTPRequestOperationManager를 사용할 수 있으며 위의 코드이며 나를 위해 일했다.

관련 문제