我正在使用 socket.io 库制作一个聊天应用程序。 现在我正在尝试使用 swift3.0 从 IOS 应用程序将图像上传到服务器
我尝试创建 bytearray 并将其作为字符串发送到服务器,但它返回损坏的图像。
var byteArray = (UIImagePNGRepresentation(image)?.base64EncodedString(options: .lineLength64Characters))! as String
let base64encoding = imageData.base64EncodedString()
let string = (String (format: "{\"text\":\"\",\"chatId\":\"%@\",\"identifier\":1476869117744,\"sessionId\":\"1476869062088\",\"attachments\":[{\"type\":\"IMAGE\",\"data\":{\"size\": \"%@\", \"name\": \"%@\", \"modifiedOn\": \"2016-12-12\", \"file\":\"%@\" }}]}","122","1233.22","photo.jpg",base64encoding))
有谁知道如何在 IOS 中使用 socket.io 将图像上传到服务器。
最佳答案
这是我创建的将图像发布到服务器的方法。希望本文对您有所帮助。
{
LoadingIndicatorView.show(loadingView!)
LoadingIndicatorView.show("Please Wait...")
let imageData = UIImageJPEGRepresentation(image, 0.5)!
let length: Float = Float(imageData.count)
let fileSizeString = "\(length)"
if let data = UIImagePNGRepresentation(image) {
let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
try? data.write(to: filename)
// print(filename)
}
let keys = ["size" ,"name","modifiedOn","file"]
let values = [fileSizeString,"photo.jpg","2016-12-12",imageData] as [Any]
let dictionary = NSMutableDictionary(objects: values, forKeys: keys as [NSCopying])
let SubscriptionDict: [String : AnyObject] = [
"type" :"IMAGE" as AnyObject,
"data" :dictionary as AnyObject
]
let Arr1 = NSMutableArray()
Arr1.add(SubscriptionDict)
let chatDict: [String : AnyObject] = [
"text": "" as AnyObject,
"chatId":chatInfoDict?["_id"] as! String as AnyObject ,
"identifier":"147853531XXXX" as AnyObject,
"sessionId":"14785348XXXXX" as AnyObject,
"attachments" :Arr1 as AnyObject
]
FAWebSocketClient.sharedClient.doEvent(eventName: "MESSAGE_CREATE", tmp: chatDict as AnyObject!);
}
关于ios - 从 IOS + Swift 将图像上传到 Socket.io 中的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40173219/