【问题标题】:Sending image using xmpp framework on iphone在 iphone 上使用 xmpp 框架发送图像
【发布时间】:2011-05-30 07:07:10
【问题描述】:

我在 iPhone 上为我的聊天应用程序使用 XMPP 框架。我想使用 XMPP 框架从我的应用程序发送图像。任何人都可以建议我,如何做到这一点?

任何帮助将不胜感激。

【问题讨论】:

    标签: iphone xmpp


    【解决方案1】:

    添加一个额外的标签,例如

    <attachment>base64 of your image </attachment>
    

    因此通过将其转换为base64字符串并将base64字符串转换回接收方中的图像,在发送方发送您的图像。

    只需将 Uiimage 转换为 base64 编码编码,然后通过 xmpp 将其作为带有任何额外标签(如附件)的消息发送。然后在接收方获取带有 base64 内容的消息并将 base64 编码字符串转换回 UIImage
    编码和解码的代码在这个链接中:

    http://iphonesdksnippets.com/post/2010/03/14/Convert-image-tofrom-text-%28Base64%29.aspx

    ...只是参考它..如果您有任何疑问或想要简要说明,请在这里评论我会回复它..

    【讨论】:

    • 这看起来是一个不错的解决方案。你能详细一点吗?
    • 我编辑了我的答案..你需要更多解释吗..在这里评论或联系我..我的电子邮件将是 Rahul.rj@experionglobal.com
    • 看起来是一个非常简单的解决方案,但您能否提供任何指向 XMPP 文档的链接,其中将其描述为受支持的解决方案?
    • @RahulNair 据我所知,在一条消息中,您只能发送 64KB 数据。如果我的图片大小超过 64KB 怎么办?
    【解决方案2】:
        NSData *data = UIImageJPEGRepresentation(chosenImage, 1.0);
    
        Base64Transcoder *base64 = [[Base64Transcoder alloc] init];
        NSString *imgStr = [base64 base64EncodedStringfromData:data];
    
    
        NSXMLElement *ImgAttachement = [NSXMLElement elementWithName:@"attachment"];
        [ImgAttachement setStringValue:imgStr];
         NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
       [body setStringValue:@"image test"];
    
    
        NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
        [message addAttributeWithName:@"type" stringValue:@"chat"];
        [message addAttributeWithName:@"to" stringValue:@"13iapp@jabbim.cz"];// [NSString stringWithFormat:@"%@@192.168.1.193",self.jabber_id]];
    
        [message addChild:message];
        [message addChild:ImgAttachement];
    
         [[[PDAppDelegate sharedDelegate] xmppStream]sendElement:message];
    

    【讨论】:

      【解决方案3】:

      要么将文件放入 WebDAV 服务器并通过 XMPP 发送 URL,要么使用XEP-0065,要么使用XEP-0047。许多问这个问题的人选择 XEP-47,但除非文件非常小,否则这几乎总是错误的选择,因为许多服务器会将您的连接作为潜在的拒绝服务来发送大量数据。

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2015-01-18
      • 2012-08-17
      • 1970-01-01
      相关资源
      最近更新 更多