Hochladen von Bildern in kürzester Zeit mit mehreren Parametern

Ich versuche, mit swift ein Bild auf einen Backend-Client hochzuladen. Das Problem ist, ich kann nicht scheinen, die Formatierung für den httpbody korrekt zu erhalten. Ich möchte kein mehrteiliges Formular zum Hochladen verwenden, da ich nicht weiß, wie ich damit im Backend umgehen soll.

Hier ist der Code, den ich habe. Er funktioniert nicht, wenn ich das Bild online betrachte. Er wird nicht angezeigt. Es sind nur 70 KB, von denen ich weiß, dass sie definitiv nicht so groß sind.

var bodyString: String = "session_id=\(session_id)&location_id=\(location_id)"
bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
var body = NSMutableData.alloc()
body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)
if image != nil{
    var imageData = UIImageJPEGRepresentation(image,0.5)
    body = NSMutableData.alloc()
    //var imageDataString = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
    bodyString = "session_id=\(session_id)&location_id=\(location_id)&image_data="
    bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
    body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)
    var imageString = "&image_data=\(imageData)"
    body.appendData(imageData)
    }
req.HTTPBody = body

UPDATE: Also habe ich mich für die Base64-Route entschieden, aber es scheint immer noch nicht zu funktionieren. Ich denke, weil ich es als ntf8string codiere. Ist dies der richtige Weg, dies zu tun?

var imageData = UIImageJPEGRepresentation(image,0.5)
var imageDataString = imageData.base64EncodedStringWithOptions(.allZeros)
body = NSMutableData.alloc()
bodyString = "session_id=\(session_id)&location_id=\(location_id)&tag_type=\(tag_type)&image_data=\(imageDataString)"
bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

und im Backend dekodiere ich es wie folgt:

image_data_decoded = base64.b64decode(image_data)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage