2011-11-07 65 views
2

如何检查AFNetworking是否已完成文件的上传?我该如何检查是否有问题?AFNetworking如何检查上传操作是否已完成或失败

这是我的代码:

AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://server"]]; 
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; 
[parameters setObject:[fieldName text] forKey:@"name"]; 
[parameters setObject:[fieldSurname text] forKey:@"surname"]; 

NSMutableURLRequest *myRequest = [client multipartFormRequestWithMethod:@"POST" path:@"/upload.php" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
    [formData appendPartWithFileData:[[AttachedFile sharedAttachedFile]dataToSend] mimeType:@"image/jpeg" name:@"attach"]; 
}]; 

AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:myRequest] autorelease]; 
[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) { 
    NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite); 
}]; 

queue = [[[NSOperationQueue alloc] init] autorelease]; 
[queue addOperation:operation]; 

,我应该实现方法(和委托)?

谢谢!使用

回答

3

[AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest 
               success:(void (^)(id object))success 
               failure:(void (^)(NSHTTPURLResponse *response, NSError *error))failure]; 

代替

AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:myRequest] autorelease]; 

当你的文件完全上传成功调用块。如果有问题,则调用故障块。

0

HTTPRequestOperationWithRequest已被弃用,你最好使用setCompletionBlockWithSuccess:在AFNetworking Uploading a file

上AFHTTPRequestOperation实例失败

检查mattt的答案