загрузка изображения в кратчайшие сроки с несколькими параметрами
Я пытаюсь загрузить изображение в бэкэнд-клиент, используя swift. Проблема в том, что я не могу получить правильное форматирование для httpbody. Я не хочу использовать многочастную форму для загрузки, так как я не знаю, как справиться с этим на сервере.
Вот код, который у меня есть ... он не работает, когда я просматриваю изображение в Интернете, он не отображается, и это всего лишь 70 КБ, который, я знаю, определенно не такой большой, как изображение.
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
ОБНОВЛЕНИЕ: поэтому я решил пойти по пути base64, но он все еще не работает, я думаю, потому что я кодирую его как строку ntf8, это правильный способ сделать это?
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)!)
и на бэкэнде я декодирую это как:
image_data_decoded = base64.b64decode(image_data)