Как загрузить изображение с Alamofire внутри параметров - PullRequest
0 голосов
/ 23 мая 2019

Здесь много подобных вопросов, но я не смог найти ответ, который помог бы мне в решении этой проблемы.

Что я хочу сделать, это загрузить изображение с Alamofire с параметрами и само изображение должно быть частью параметров. Например, параметры должны быть такими:

["user_id": 1, "picture": 'and here will be the image that i want to upload']

в ответ я получу изображение в виде ссылки:

"/uploads/members/'user_id'/images/member_'user_id'/28121284ase2.jpg"

что-то похожее на это.

Также изображение должно быть 'jpg, png и не более 5 МБ'.

Я новичок в загрузке изображений с помощью API, поэтому не знаю, что именно делать. Я попробовал каждое решение, которое смог найти здесь и в Google, но пока не повезло. Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Я собираюсь предположить, что у вас есть экземпляр UIImage для начала, вам придется кодировать его в base64 и отправлять его в бэкэнд, как и в случае любого другого параметра String. Это должно помочь:

extension UIImage {

    func toBase64() -> String? {
        guard let imageRectoData = jpeg(.low) else {
            return nil
        }
        return imageRectoData.base64EncodedString()
    }

    enum JPEGQuality: CGFloat {
        case lowest  = 0
        case low     = 0.25
        case medium  = 0.5
        case high    = 0.75
        case highest = 1
    }

    /// Returns the data for the specified image in JPEG format.
    /// If the image object’s underlying image data has been purged, calling this function forces that data to be reloaded into memory.
    /// - returns: A data object containing the JPEG data, or nil if there was a problem generating the data. This function may return nil if the image has no data or if the underlying CGImageRef contains data in an unsupported bitmap format.
    func jpeg(_ jpegQuality: JPEGQuality) -> Data? {
        return jpegData(compressionQuality: jpegQuality.rawValue)
    }
}
0 голосов
/ 23 мая 2019

Это можно сделать с помощью запроса multipart / form-data. Ваш вопрос относительно этого: Загрузить изображение с многочастной формой данных iOS в Swift

...