2012-01-24 1 views
2

Dropbox restClient enregistre uniquement les fichiers. Donc, je veux d'abord enregistrer l'image dans le dossier local, puis de le télécharger, par conséquent, il enregistre le fichier, mais il est corrompu.Comment télécharger une image qui n'est pas enregistrée sur l'appareil dans le compte de dépôt (IOS)

NSString *localPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"]; 
NSString *jpegFilePath = [NSString stringWithFormat:@"%@/test.jpeg",localPath]; 
NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)]; 
[data2 writeToFile:jpegFilePath atomically:YES]; 

NSString *filename = @"test.jpeg"; 

NSString *destDir = @"/"; 
[[self restClient] uploadFile:filename toPath:destDir 
       withParentRev:nil fromPath:localPath]; 

Je suis un idiot, résolu

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path = [[paths objectAtIndex:0] stringByAppendingString:@"test.jpg"]; 

NSData * data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)]; 
[data writeToFile:path atomically:YES]; 
[self.restClient uploadFile:@"test.jpg" toPath:@"/" withParentRev:nil fromPath:path]; 
+0

Est-ce que le résultat est corrompu en tant que brisé avec la bonne taille ou la mauvaise taille ou vide ou ...? –

+0

La taille est égale à: 1 012 octets, donc c'est faux –

Répondre

2

vous devrez appeler des méthodes DBRestClient du thread principal ou d'un fil qui a une boucle d'exécution. Sinon, les méthodes déléguées ne seront pas appelées.

ce que vous avez à faire est d'abord alloc initialisation yoir DBRestClient objet puis faire est de déléguer l'auto et vous pouvez facilement télécharger votre file.below est un exemple

NSString *destDir = @"/"; 
restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
restClient.delegate = self; 

[restClient uploadFile:yourfilename toPath:destDir withParentRev:nil fromPath:sourcepath]; 

Bonne programmation !!!!!!

1

Vous ne pouvez pas enregistrer dans le faisceau. Vous devez utiliser des documents ou un dossier de cache:

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
+0

J'ai déjà essayé. Il enregistre le fichier, mais apparaît erreur: AVERTISSEMENT] DropboxSDK: Impossible de télécharger des dossiers (/ Utilisateurs .....) –

Questions connexes