2012-11-16 72 views
1

因此,我试图使用AFNetworking将POST文件上传到服务器。
因此,从他们的网站使用示例代码我有这个设置。当它运行时,东西被上传到服务器(或者至少它离开我的电脑)。我可以监视上传,当上传完成时,服务器会识别它已完成并加载文件,但会加载旧的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