2012-01-24 62 views
2

Dropbox restClient只保存文件。所以我想先將圖像保存在本地文件夾中,然後將其上傳,從而保存文件,但已損壞。如何將未保存在設備上的圖像上傳到保管箱賬戶?(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方法。否則委託方法將不會被調用。

你必須做的是第一頁頭初始化yoir DBRestClient對象然後使它的委託自我,那麼你就可以輕鬆地上傳您的file.below就是一個例子

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

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

編碼愉快!!!!!!

1

你不能保存到包。您應該使用文件或緩存文件夾:

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

我已經試過了。它保存文件,但出現錯誤:警告] DropboxSDK:無法上傳文件夾(/用戶.....) –

相關問題