Dropbox API iOS不上传文件

时间:2013-08-30 19:46:56

标签: ios dropbox-api

我添加了Dropbox支持到我的应用程序,一切正常,身份验证,登录/退出,但我无法上传文件。我正在使用

NSArray *p = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* docDir = [p objectAtIndex:0];
    NSString *localPath = docDir;
    NSString *filename = @"Documents";
    NSString *destDir = @"/";
    [[self restClient] uploadFile:filename toPath:destDir
                    withParentRev:nil fromPath:localPath];

将我的应用程序/文档目录上传到Dropbox,但没有上传任何内容。我没有收到任何错误消息。目录Apps / My-Applications-Name已创建,但内容中没有任何内容。

任何人都知道为什么?

我也有这两个委托方法,但我仍然没有得到日志。我<DBRestClientDelegate>后面还有@interface … ()

- (void)restClient:(DBRestClient*)client uploadedFile:(NSString*)destPath
              from:(NSString*)srcPath metadata:(DBMetadata*)metadata {

    NSLog(@"File uploaded successfully to path: %@", metadata.path);
}

- (void)restClient:(DBRestClient*)client uploadFileFailedWithError:(NSError*)error {
    NSLog(@"File upload failed with error - %@", error);

}

4 个答案:

答案 0 :(得分:0)

听起来Documents是一个目录,但uploadFile用于上传文件。我不认为Core API中有一个上传文件夹内容的方法,所以你必须遍历文件夹并单独上传每个文件。

答案 1 :(得分:0)

您是否实施了Dropbox委托方法? Uploadcompleted和uploadfailedwitherror?您还需要在应用委托中指定您是Dropbox委托,以便实现这些方法。确保您的本地路径正确,您的上传路径是。

将DBRestClientDelegate添加到您的app委托或任何类上传

答案 2 :(得分:0)

NSArray *p = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* documentDirectory = [p objectAtIndex:0];
    NSString *filename = @"png.png";
    NSString *destDir = @"/";
    [[self restClient] uploadFile:filename
                           toPath:destDir
                    withParentRev:nil
             fromPath:[documentDirectory stringByAppendingPathComponent:filename] ];

“fromPath”必须是源文件的FULL PATH。 API文档错误。

答案 3 :(得分:-1)

您是否检查过您是否正在从主线程设置委托?否则,您的线程可能没有runloop,并且永远不会调用委托回调。

UPDATE 我的问题是ARC在上传完成之前销毁了DBRestClient对象。