2016-08-24 5 views
0

Я пытаюсь загрузить изображение с изображения в хранилище Firebase.Преобразование представления UIImage в NSURL для загрузки его в Firebase

Пользователь загрузит изображение либо из фотоальбома, либо из камеры в режим просмотра изображений! Я хочу загрузить это изображение из изображения в хранилище firebase.

Я пытался следовать примеру в Firebase документы, как здесь:

let localFile: NSURL = ImageView.image 


    let metadata = FIRStorageMetadata() 
    metadata.contentType = "image/jpeg" 

    // Upload file and metadata to the object 'images/mountains.jpg' 
    let uploadTask = storage.child("images/DeviceImage.jpg").putFile(localFile, metadata: metadata); 

    // Listen for state changes, errors, and completion of the upload. 
    uploadTask.observeStatus(.Pause) { snapshot in 
     // Upload paused 
    } 

    uploadTask.observeStatus(.Resume) { snapshot in 
     // Upload resumed, also fires when the upload starts 
    } 

    uploadTask.observeStatus(.Progress) { snapshot in 
     // Upload reported progress 
     if let progress = snapshot.progress { 
      let percentComplete = 100.0 * Double(progress.completedUnitCount)/Double(progress.totalUnitCount) 
     } 
    } 

    uploadTask.observeStatus(.Success) { snapshot in 
     // Upload completed successfully 
    } 

    // Errors only occur in the "Failure" case 
    uploadTask.observeStatus(.Failure) { snapshot in 
     guard let storageError = snapshot.error else { return } 
     guard let errorCode = FIRStorageErrorCode(rawValue: storageError.code) else { return } 
     switch errorCode { 
     case .ObjectNotFound: 
      // File doesn't exist 

     case .Unauthorized: 
      // User doesn't have permission to access file 

     case .Cancelled: 
      // User canceled the upload 

      ... 

     case .Unknown: 
      // Unknown error occurred, inspect the server response 
     } 
    } 

Но я не знаю, как преобразовать UIImageView в NSURL.

Вот ошибка я получил: enter image description here

+0

Сначала убедитесь, что изображение существует на диске, а затем создать NSURL с его пути. – Roecrew

ответ

3

Вам необходимо преобразовать изображение в файл на диске и получить URL того, что для загрузки.

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
let filePath = "\(paths[0])/MyImageName.jpg" 

// Save image. 
UIImageJPEGRepresentation(image, 0.90)?.writeToFile(filePath, atomically: true) 

См: How do I save a UIImage to a file?

После того, как он записывается на диск, который вы можете получить URL для файла следующим образом:

let localFile = NSURL(fileURLWithPath: filePath) 
+0

Свойство .image в UIImageView содержит ссылку на данные UIImage. let image = myImageView.image –

+0

Я попробую и дам вам знать – Mariah

+0

Извините, UIImageJPEGПрисутствие принимает 2 параметра. Я обновил ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^