2013-08-30 3 views
1

내 응용 프로그램에 dropbox 지원이 추가되었으며, 모든 것이 완벽하게 작동합니다. 인증, 로그인/아웃이 가능하지만 파일을 업로드 할 수 없습니다. 나는 드롭 박스 내 응용 프로그램/문서 디렉토리를 업로드 할 Dropbox API iOS가 파일을 업로드하지 않습니다.

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]; 

를 사용하고, 그러나 아무것도 업로드되지 않습니다. 오류 메시지가 표시되지 않습니다. Apps/My-Applications-Name 디렉토리가 생성되었지만 내용이 없습니다.

누구나 알 수 있습니까?

이 두 가지 대리자 메서드도 있지만 로그는 아직 가져 오지 않습니다. 또한 <DBRestClientDelegate>@interface …() 뒤에서 있습니다 Documents 디렉토리이지만, uploadFile가 파일을 업로드하는 데 사용됩니다 같은

- (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

폴더를 업로드 할 수 없으며 특정 파일 만 업로드 할 수 있습니다. 그리고 지정한 파일은 파일 이름이 아닌 전체 파일 경로 여야합니다. – rmaddy

+0

그래서 파일 이름은 Path입니까? –

+0

죄송합니다, 나는'fromPath' 인자가 완전한 경로명이어야한다는 것을 의미했습니다. 제 첫 번째 의견의 두 번째 절반을 무시할 수있을 것 같습니다. – rmaddy

답변

0

그것은 소리. 코어 API에는 폴더의 내용을 업로드하는 방법이 없다고 생각하므로 폴더를 거쳐 개별적으로 각 파일을 업로드해야합니다.

+0

이제 번들에서 파일을 업로드하려고했습니다. NSString * localPath = [[NSBundle mainBundle] pathForResource : @ "png"ofType : @ "png"]; 그것도 일하지 않았다. –

+0

오, iOS 개발에 대해 많이 알지는 못하지만 'localPath'를 살펴보고 기대했던 바를 확인하십시오. 이것은 "png.png"라는 파일 (이것은보기 드문 파일 이름처럼 보임)에서만 작동하지 않을까요? – smarx

+0

png.png는 .png 파일 유형의 아이콘으로 png.png라고 불리는 이유입니다. Dropbox 튜토리얼의 methode를 사용했지만 작동하지 않습니다. –

0

Dropbox 대리자 메서드를 구현 했습니까? 업로드 완료 및 업로드 실패했습니다. 또한 이러한 메소드를 구현하기 위해 Dropbox 대리자라는 것을 애플 리케이션 델리게이트에 명시 할 필요가있다. 로컬 경로가 올바른지, 업로드 경로가 올바른지 확인하십시오.

앱 위임 또는 무엇이든에 DBRestClientDelegate 추가 클래스 업로드

+0

메서드는 내 파일에 있지만 응답이 없습니다. –

+0

헤더에 DBRestClientDelegate를 넣었습니까? – drfear

+0

나는 모든 것을 읽지 못해 죄송합니다. 난 당신이 DBRestClientDelegate – drfear

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은"소스 파일의 전체 경로 여야합니다. API 문서가 잘못되었습니다.

-1

메인 스레드에서 대리인을 설정하고 있는지 확인 했습니까? 그렇지 않으면 스레드가 runloop을 가지지 않고 대리자 콜백이 절대 호출되지 않습니다.

업데이트 업로드가 완료되기 전에 내 문제로 인해 ARC가 DBRestClient 객체를 파괴했습니다.

관련 문제