You are here

initWithData:mimeType

- (void)initWithData:(NSData *)data mimeType:(NSString *)mimeType - Creates an SkyVaultContentFile instance, which is a file in the temporary directory. The parameter data is the content for the file to be created, and mimeType the specified mime type.

Parameters

(NSData *) data
The file content.
(NSString *) mimeType
The mime type of the content.

Returns

(void)

Example


/**
 uploadPhoto: uses the SkyVaultDocumentFolderService to upload an image using the method createDocumentWithName method
 */
- (void)uploadPhotoWithName:(NSString *)name description:(NSString *)description tags:(NSArray *)tags
{
    self.progressView.hidden = NO;
    [self.progressView setProgress:0.0];
    
    NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithObject:name forKey:@"cm:title"];
    if (description)
    {
        [properties setValue:description forKey:@"cm:description"];
    }
    
    self.documentFolderService = [[AlfrescoDocumentFolderService alloc] initWithSession:self.session];
    SkyVaultContentFile *imageFile = nil;
    if ([[name lowercaseString] hasSuffix:@".jpg"]) 
    {
        imageFile = [[AlfrescoContentFile alloc] 
                     initWithData:UIImageJPEGRepresentation(self.selectedPhoto, 1.0) 
                     mimeType:@"image/jpeg"];
    }
    else if ([[name lowercaseString] hasSuffix:@".png"]) 
    {
        imageFile = [[AlfrescoContentFile alloc] 
                     initWithData:UIImagePNGRepresentation(self.selectedPhoto) 
                     mimeType:@"image/png"];
    }
    else 
    {
        imageFile = [[AlfrescoContentFile alloc] 
                     initWithData:UIImageJPEGRepresentation(self.selectedPhoto, 1.0) 
                     mimeType:@"image/jpeg"];
    }
    
    __weak AddNewItemTableViewController *weakSelf = self;
    [self.documentFolderService createDocumentWithName:name 
                                        inParentFolder:self.folder 
                                           contentFile:imageFile properties:properties 
                                       completionBlock:^(AlfrescoDocument *document, NSError *error){
          if (nil == document) 
          {                                               
              weakSelf.progressView.hidden = YES;
              UIAlertView *alert = [[UIAlertView alloc] 
                                    initWithTitle:localized(@"error_title")
                                    message:[NSString stringWithFormat:@"%@, %@", localized(@"error_uploading_document"), [error localizedDescription]]
                                    delegate:nil 
                                    cancelButtonTitle:localized(@"dialog_cancel")
                                    otherButtonTitles: nil];
              alert.alertViewStyle = UIAlertViewStyleDefault;
              [alert show];    
              weakSelf.photoLabel.text = localized(@"add_photo_option");
          }
          else 
          {
              if (tags.count > 0)
              {
                  // convert tag objects into strings
                  NSMutableArray *tagStrings = [NSMutableArray arrayWithCapacity:tags.count];
                  for (AlfrescoTag *tag in tags)
                  {
                      [tagStrings addObject:tag.value];
                  }
                  
                  self.taggingService = [[AlfrescoTaggingService alloc] initWithSession:weakSelf.session];
                  [self.taggingService addTags:tagStrings toNode:document completionBlock:^(BOOL success, NSError *error){
                      if (!success) 
                      {
                          weakSelf.progressView.hidden = YES;
                          UIAlertView *alert = [[UIAlertView alloc] initWithTitle:localized(@"error_title")
                                                                          message:[NSString stringWithFormat:@"%@, %@",localized(@"error_adding_tags"), [error localizedDescription]] 
                                                                         delegate:nil 
                                                                cancelButtonTitle:localized(@"dialog_cancel")
                                                                otherButtonTitles:nil];
                          alert.alertViewStyle = UIAlertViewStyleDefault;
                          [alert show];
                      }
                      else 
                      {
                          weakSelf.progressView.progress = 1.0;
                          if ([weakSelf.addNewItemDelegate respondsToSelector:@selector(updateFolderContent)])
                          {
                              [weakSelf.addNewItemDelegate updateFolderContent];
                          }
                          weakSelf.progressView.hidden = YES;
                          [weakSelf.navigationController popViewControllerAnimated:YES];
                      }
                       
                  }];
              }
              else 
              {
                  weakSelf.progressView.progress = 1.0;
                  if ([weakSelf.addNewItemDelegate respondsToSelector:@selector(updateFolderContent)])
                  {
                      [weakSelf.addNewItemDelegate updateFolderContent];
                  }
                  weakSelf.progressView.hidden = YES;
                  [weakSelf.navigationController popViewControllerAnimated:YES];                                                   
              }
          }
      } 
      progressBlock:^(NSInteger bytesUploaded, NSInteger totalBytes){
          weakSelf.progressView.progress = ((float)bytesUploaded/(float)totalBytes) - 0.3;
      }];
}