Как преобразовать UIImage в данные, которые понимает Django

Может показаться глупым вопросом, но у меня проблема с UIImage.
. Мое приложение взаимодействует с сервером Django, и для этого я использую Alamofire. Мне нужно передать изображение, но я не знаю, как преобразовать UIImage в соответствующие данные, чтобы сервер мог их понять.
В настоящее время мой код выглядит следующим образом:

let param = ["image": image] // <- 'image' is a UIImage
AF.request(method: .post, parameters: param) // and so on

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

class UploadImageForScanForm(forms.Form):
    image = forms.ImageField()

Как я могу преобразовать UIImage в соответствующий формат данных, чтобы мой сервер Django мог понять его и выполнить свою работу с ним?

Поскольку это "форма", я полагаю, что вы должны отправить многокомпонентную форму с изображением в ней, используя метод POST, а не GET запрос.

let image = // get your UIImage in some way
guard let png = image.pngData() else {
    // there is no PNG representation for the UIImage
    // you can also try jpegData
    return 
}

AF.upload(multipartFormData: { form in
    form.append(png, withName: "image", fileName: "image.png", mimeType: "image/png")
}, to: someURL)
    // and then you can get the response in whatever way you like
    .responseFoo { response in
        ...
    }
Вернуться на верх