2012-01-24 6 views
2

Dropbox restClientはファイルのみを保存します。だから私は最初にローカルフォルダに画像を保存し、それをアップロードすると、結果としてファイルを保存するが、破損している。デバイスに保存されていない画像を、Dropboxアカウントにアップロードする方法(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]; 

私は馬鹿だ、あなたがバンドルに保存することはできません

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

正しいサイズまたは間違ったサイズで空になっているか、または破損していますか? –

+0

サイズは1,012バイトなので、間違った –

答えて

2

あなたがメインスレッドまたは実行ループを持っているスレッドからDBRestClientメソッドを呼び出す必要があります。それ以外の場合、デリゲートメソッドは呼び出されません。あなたがしなければならないだろう何

は、initはyoirは、それが自己を委任だ作り、その後、あなたが簡単にあなたのfile.belowを例

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

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

コーディングハッピーでアップロードすることができ、オブジェクトDBRestClient最初のallocです!!!!!!

1

を解決しました。あなたは、文書やキャッシュフォルダを使用する必要があります。

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

私はこれを試しました。ファイルを保存しますが、エラーが表示されます:WARNING] DropboxSDK:フォルダをアップロードできません(/ユーザ.....) –