2016-04-01 19 views
0

BOX SDK'dan bir görüntüyü uygulamanıza indirmem gerekiyor. Bunu zaten dropbox sdk kullanarak çalışıyorum - Box sdk'den daha kolay görünüyor. Her neyse - Dosyanın adını döndüren bir temsilci yöntemim var, ancak dosyayı nasıl yüklerim?BOX SDK'dan bir dosya indirin iOS

- (void)itemsViewController:(BOXItemsViewController *)itemsViewController didTapFile:(BOXFile *)file inItems:(NSArray *)items { 

    NSLog(@"Did tap file: %@", file.name); 

    BOXFileDownloadRequest *downloadRequest; 
    BOXContentClient *contentClient; 

    contentClient = [BOXContentClient defaultClient]; 
    NSOutputStream *outputStream = [[NSOutputStream alloc] initToMemory]; 
    downloadRequest = [_contentClient fileDownloadRequestWithID:file.name toOutputStream:outputStream]; 
    [_downloadRequest performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) { 
    } completion:^(NSError *error) { 
     if (error == nil) { 
      NSData *data = [outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; 
      UIImage *img = [UIImage imageWithData:data]; 
      _uiiv_logo.image = img; 
     } 
     else{ 
     } 
    }]; 

} 
+0

Yayınlanan kodla ilgili sorununuz nedir? – rmaddy

+0

Hiçbir şey indirilme. Ben url görmek için jsondict almak için BoxItem geçiş yapmayı denedim ama onlar bir reblank. Paylaşmayı etkinleştirmem gerektiğini düşünüyorum. Bunu denedim ve URL'ler şimdi gösteriyor, ancak hiçbir şey indirmiyor. – malaki1974

cevap

0

'id' değerini elde etmek için BOXItem'e dönmeyi bitirdim.

- (void)itemsViewController:(BOXItemsViewController *)itemsViewController didTapFile:(BOXFile *)file inItems:(NSArray *)items 
{ 
    BOXItem *item = file; 
    BOXContentClient *contentClient = [BOXContentClient defaultClient]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory 
    NSString *localFilePath = [documentsPath stringByAppendingPathComponent:@"NSURLSession.png"]; 

    BOXFileDownloadRequest *boxRequest = [contentClient fileDownloadRequestWithID:[item.JSONData valueForKey:@"id"] toLocalFilePath:localFilePath]; 
    [boxRequest performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) { 
     // Update a progress bar, etc. 
     NSLog(@"progress %lld",totalBytesTransferred); 
    } completion:^(NSError *error) { 
     // Download has completed. If it failed, error will contain reason (e.g. network connection) 
     if (error) { 
      NSLog(@"error %@",[error description]); 
      [[NSNotificationCenter defaultCenter] postNotificationName:@"customUpdateBG" object:nil]; 
     } 
    }]; 
} 
İlgili konular