2012-11-16 3 views
1

그래서 AFNetworking을 사용하여 POST로 서버에 XML 파일을 업로드하려고합니다.
사이트의 예제 코드를 사용하여이 코드를 설정했습니다. 그것이 실행되면, 뭔가 서버 (또는 적어도 내 컴퓨터를 떠나)에 업로드됩니다. 업로드를 모니터링 할 수 있습니다. 업로드가 완료되면 서버는 파일이 완료되었음을 인식하고 파일을로드하지만 이전 XML을로드합니다. 그래서 제대로 서버에 연결하고 있지만 파일 업로드가 올바르게 작동하지 않는 이유를 모르겠습니다. 또한 파일을 보내려는 경우 서버에 헤더 나 매개 변수가 필요하지 않습니다.
데이터를 올바르게 저장했는지 궁금합니다. 아니면 내가 제대로 서버를 보내지 않을거야 또는 무엇? 어떤 제안이라도 도움이 될 것입니다.AFNetworking을 사용하여 POST로 파일 업로드

NSData *iTunesXMLData = [NSData dataWithContentsOfFile:filePath]; 

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; 

    /* NSMutableURLRequest *request =[httpClientmultipartFormRequestWithMethod:@"POST"  
path:@"/upload.php?id=5" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
    [formData appendPartWithFileData:iTunesXMLData name:@"iTunes Music Library" fileName:@"iTunes Music Library.xml" mimeType:@"application/xml"]; 
}];*/ 

//I tried this way also, both did the same thing 

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload.php?id=5" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
    [formData appendPartWithFormData:iTunesXMLData name:@"iTunes Music Library"]; 
}];` 

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];` 

NSLog(@"Operation: %@", operation); 
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { 
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); 
}]; 
[operation start]; 

답변

1

작업 성공/실패를 잡으려고 했습니까? setUploadProgressBlock 후이 시도 :

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // Operation ended successfully 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Something happened! 
    NSLog(@"ERROR: %@, %@", operation, error); 
    // Here you can catch operation.responseString to see the response of your server 
}]; 

이 서버가 반환 알 수있는 가장 쉬운 방법입니다. 서버에 무언가가 업로드되면 올바른 파일을 얻고 있는지 다시 확인하십시오. AFAIK, 너의 AFNetwork는 괜찮아 보인다.

+0

제안 해 주셔서 감사합니다. 실제로 이전에 추가 했으므로 문제를 진단하는 데 도움이되었습니다. PHP 서버는 특정 파일 이름으로 파일을 원했습니다. – urbanrider

관련 문제