我添加了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);
}
答案 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对象。