Как я могу загрузить изображение, преобразованное в base64, используя alamofire? - PullRequest
0 голосов
/ 21 октября 2018

Я использую Alamofire для управления сетью в своем приложении. API, который я использую для загрузки изображения на сервер, требует двух параметров: имени изображения и данных изображения (строка из 64 строк). Я знаю, как конвертировать.изображение в base64, используя этот код

    class func convertImageToBase64(image: UIImage) -> String {
    let imageData = UIImagePNGRepresentation(image)!
    return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)
}

, но я не знаю, как получить имя изображения ?!во-вторых, если я получил имя изображения, как загрузить изображение на сервер, может кто-нибудь объяснить код Alamofire, который загружает изображение?

это мой API

Веб-метод:

https://serverName/AddPhoto

Параметры

{"FileName": "Hydrangeas.jpg", "ImageData": "base64string"}

примечания: FileName: имя выбранного файлафото ImageData: Base 64 String представляет Imge Bytes

Заранее спасибо

1 Ответ

0 голосов
/ 21 октября 2018

шаг 01:

импортировать библиотеку фотографий сверху

import Photos

получить изображение с помощью UIImagePickerController () следующим образом

var base64Image: String?
var fileName: String?
 override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImagePickerController()
        image.delegate = self
        image.sourceType = UIImagePickerController.SourceType.photoLibrary

    }
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {

        if let asset = info[UIImagePickerController.InfoKey.phAsset] as? PHAsset {
                if let fileName = (asset.value(forKey: "filename")) as? String {
                    self.fileName = fileName
                }
            }


         base64Image = convertImageToBase64(image: image)

        }

        self.dismiss(animated: true, completion: nil)
    }

func convertImageToBase64(image: UIImage) -> String {
        let imageData = image.pngData()!
        return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)
    }

Шаг 02: установить base64Image вваш парам вот так

{ "FileName":"\(fileName)", "ImageData":"\(base64Image)" }
...