2014-05-09 2 views
0

AFNetworking을 사용하여 이미지를 게시하는 방법 image.but 이미지를 게시하려면 아래 코드를 사용하여 이미지를 게시하고 있습니다. 서버에 이미지가 업로드되지 않습니다. 이미지를 게시 한 후 결과 "http://thisisswitch.com:8084/SmartSwitchService/UserImages/69684177-4601-4665-8890-5424e3fbff73.png"에이 링크가 표시됩니다.AFNetworking을 사용하여 이미지를 게시 하시겠습니까?

누구든지 코드의 문제점을 알 수 있습니까? Github read me에서

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:BaseUrl]]; 
    NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:posturl parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFormData:imgData name:@"image"]; 

    }]; 

    [httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]]; 
    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
    NSDictionary *dict = (NSDictionary *)JSON; 

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 
    }]; 
    [operation start]; 
+0

PHP에서 문제가 발생하지 않았습니까? 파일이 서버에 생성되지 않으면 링크를 반환해서는 안됩니다 ... 어떤 백엔드를 사용하고 있습니까? 너 자신이 쓴거야? –

+0

이 줄에 의심의 여지가 있습니다 [formData appendPartWithFormData : imgData 이름 : @ "image"]; 이 줄의 이름은 무엇입니까 – user2064546

+0

백엔드의 .net – user2064546

답변

2

:

여기
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; 

NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 

NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"]; 
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { 
    if (error) { 
     NSLog(@"Error: %@", error); 
    } else { 
     NSLog(@"Success: %@ %@", response, responseObject); 
    } 
}]; 
[uploadTask resume]; 
1

내가 (2.X를 AFNetworking에서)을하고 있어요 방법 : 다음

- (void)requestWithFormData:(void (^)(id <AFMultipartFormData> formData))formBlock 
       withParams:(NSDictionary *)params 
      webservicePath:(NSString *)webservicePath 
        success:(void (^)(AFHTTPRequestOperation *operation, id jsonDictionary))successBlock 
        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failureBlock 
{ 
    // Handle request for file upload 
    AFHTTPRequestOperation *op = [self.manager POST:webservicePath 
             parameters:params 
          constructingBodyWithBlock:formBlock 
              success:success 
              failure:failureBlock]; 
    [op start]; 
} 

여기

내 코드입니다 나는 다음과 같이 사용한다 :

void (^formBlock)(id <AFMultipartFormData> formData) = ^(id <AFMultipartFormData>formData) 
{ 
    NSData *data1 = UIImagePNGRepresentation(profileImage); 
    [formData appendPartWithFileData:data1 name:@"file" fileName:@"picture.png" mimeType:@"image/png"]; 
}; 

[networkingUtil requestWithFormData:formBlock 
         withParams:params 
        webservicePath:@"myserver.com/upload" 
          success:successBlock 
          failure:failureBlock]; 

서버가 양식 데이터를 처리하고 file을 찾아야합니다.

관련 문제