在iphone上使用xmpp框架发送图像

时间:2010-12-24 05:47:08

标签: iphone xmpp

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

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:6)

添加额外的标签,例如

<attachment>base64 of your image </attachment>

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

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

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

...请参考..如果您有任何疑问或者您想要一个简短的解释,请在这里发表评论我会回复它。

答案 1 :(得分:1)

    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];

答案 2 :(得分:0)

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