Search code examples
iosobjective-cdropbox

uploadedFile not called


I have an app where I upload a simple .csv file to Dropbox. The files upload perfectly when I send them, but the restClient uploadedFile method is not called. I would like this to use this to display to the user that the file has been uploaded successfully. I seem to remeber it was called the first few times I ran the code, but then it stopped and I can't see why.

Here are some snippets:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)       //Cancel
{
}
else if (buttonIndex == 1)      //Send
{
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *CCD = [docPath stringByAppendingPathComponent:@"CCD.csv"];


    if ([[NSFileManager defaultManager] fileExistsAtPath:CCD])
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSString *machineName = [defaults objectForKey:@"machineName"];
        NSString *fileTitle = [defaults stringForKey:@"setTitle"];
        NSMutableString *filePath = [NSMutableString string];
        [filePath appendString:docPath];
        [filePath appendString:@"/CCD.csv"];
        NSString *destDir = @"/";
        [SVProgressHUD showWithStatus:[NSString stringWithFormat:@"Sending to %@...", machineName]];
        [[self restClient] uploadFile:fileTitle toPath:destDir
                        withParentRev:nil fromPath:filePath];

    }

} 
}
- (void)restClient:(DBRestClient*)restClient uploadedFile:(NSString*)filePath {
    NSLog(@"File uploaded successfully");
    [SVProgressHUD dismiss];
};

As I said, it uploads the file perfectly, I just don't get the call to the uploadedFile method.


Solution

  • Try this way..

    @interface ResultClass_vice : UIViewController<DBRestClientDelegate>
    {
    DBRestClient *restClient;
    }
    
    #pragma mark - DropBox
    
    - (void)didPressLink {
       // [[DBSession sharedSession]unlinkAll];
    
        if (![[DBSession sharedSession] isLinked]) {
            [[DBSession sharedSession] linkFromController:self];
            // Session must be linked before creating any DBRestClient objects.
    
            //   nstr
            UIAlertView *al=[[UIAlertView alloc]initWithTitle:@"" message:@"You must have to Login"  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
            [al show];
            [al release];
    
        }
    }
    
    - (DBRestClient *)restClient {
        if (!restClient) {
            restClient =
            [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];
            restClient.delegate = self;
        }
        return restClient;
    }
    
    
    - (void)restClient:(DBRestClient*)client uploadedFile:(NSString*)destPath
                  from:(NSString*)srcPath metadata:(DBMetadata*)metadata {
    
        //NSLog(@"File uploaded successfully to path: %@", metadata.path);
        UIAlertView *alert = [[[UIAlertView alloc]initWithTitle:@"Success" message:@"Your file is successfully uploaded to Dropbox" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]retain];
        [alert show];
        [alert release];
    
    }
    
    - (void)restClient:(DBRestClient*)client uploadFileFailedWithError:(NSError*)error {
        NSLog(@"File upload failed with error - %@", error);
    }
    

    Let me know if you have any problem because I already implemented it.