ios - 从 IOS + Swift 将图像上传到 Socket.io 中的服务器

标签 ios swift sockets websocket socket.io

我正在使用 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/

相关文章:

c - 使用套接字发送和接收文件

ios - xCode 目标包标识符摘要无法编辑

ios - 当服务器返回 'Moved temporarily' 或 'Moved permanently' 时,如何使用 NSURLConnection 获取重定向 URL?

ios - 为什么日期格式化程序失败?

ios - Swift:平移(拖动)后如何使惯性平滑?

ios - 如何快速获取json对象的数组

iOS:SWRevealViewController 和多个 NavigationControllers

ios - 我希望我的 iOS 应用程序中的所有 UI 副本都包含在一个易于审核的文件中。什么是好的方法?

java socket编程问题

C++ Winsock recv() 缓冲区垃圾