【问题标题】:uploading image to server in Socket.io from IOS + Swift从 IOS + Swift 将图像上传到 Socket.io 中的服务器
【发布时间】:2016-10-21 09:38:41
【问题描述】:

我正在使用 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 将图像上传到服务器。

【问题讨论】:

  • 你有什么解决办法吗?我也面临同样的问题?
  • @AbecedarioPoint 是的,它对我有用,让我发布解决方案

标签: ios swift sockets websocket socket.io


【解决方案1】:

这是我创建的将图像发布到服务器的方法。希望这个对你有帮助。

{

         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!);

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2017-04-23
    • 1970-01-01
    • 2016-03-07
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多