【问题收集·中级】关于XMPP使用Base传送图片
下面是我与博友的问答过程:并在最后链接附录了相应的文件:
博友问题: 16:35:38
他跟我说要
内容图片
base64
编码
上传、、
博友问题: 16 : 35 : 45
我用的是 afn 。。怎么上传呢。。擦
博友问题: 16 : 35 : 46
没做过
我的回答: 16 : 36 : 20
Base64 就是把图片转成字符串
博友问题: 16 : 36 : 26
额。
博友问题: 16 : 36 : 33
怎么转 ?
我的回答: 16 : 36 : 44
你怎么上传字符串 , 就怎么上传
我的回答: 16 : 36 : 51
稍等 , 我把我写的方法发给你
博友问题: 16 : 35 : 45
我用的是 afn 。。怎么上传呢。。擦
博友问题: 16 : 35 : 46
没做过
我的回答: 16 : 36 : 20
Base64 就是把图片转成字符串
博友问题: 16 : 36 : 26
额。
博友问题: 16 : 36 : 33
怎么转 ?
我的回答: 16 : 36 : 44
你怎么上传字符串 , 就怎么上传
我的回答: 16 : 36 : 51
稍等 , 我把我写的方法发给你
![](https://i-blog.csdnimg.cn/blog_migrate/6ee871578dbf0d5a1f0efd758c8306e1.png)
3.8 KB
博友问题: 16 : 37 : 01
嗯 。。、
下面是我 XMPP 中发送图片的核心代码
我的回答: 16 : 40 : 08
-(void)sendImage:(UIImage *)aImage
{
NSLog( @" 准备发送图片 " );
NSData *data = [Photo image2Data:aImage];
NSString *imgStr =[data base64Encoding];
if (data.length > 0 )
{
NSDictionary *messageDic=[NSDictionary dictionaryWithObjectsAndKeys:imgStr, @"file" ,[NSNumber numberWithInt:kWCMessageTypeImage], @"messageType" , @"" , @"text" ,[[NSUserDefaults standardUserDefaults] valueForKey:kMY_USER_NICKNAME], @"nickName" , @"1" , @"isRead" , nil ];
NSString *msgJson=[messageDic JSONRepresentation];
XMPPMessage *mes =[XMPPMessage messageWithType: @"chat" to:[XMPPJID jidWithString:_friendJid resource: @"ios" ]];
[mes addChild:[DDXMLNode elementWithName: @"body" stringValue:msgJson]];
// 发送消息
[[WCXMPPManager sharedInstance] sendMessage:mes];
[_messageText setText: nil ];
}
}
博友问题: 16 : 41 : 05
[data base64Encoding];
博友问题: 16 : 41 : 19
就直接这个、就可以转为字符串了、对吧 ?
我的回答: 16 : 42 : 47
嗯一行
我的回答: 16 : 43 : 00
用我写的工具类就行
博友问题: 16 : 43 : 18
好 。我写写看 。。
博友问题: 16 : 43 : 36
这样获取到 图片的字符串。。然后上传到服务器。。其他就没啥事了。。
博友问题: 16 : 46 : 59
对了、、
博友问题: 16 : 47 : 06
拿到图片的那些代码呢 ?
博友问题: 16 : 47 : 31
这图片从哪里选择出来。。。
我的回答: 16 : 47 : 57
照片选择器啊
我的回答: 16 : 48 : 07
我是用户自己选的图片
我的回答: 16 : 48 : 08
#pragma mark ---------- 图片选择完成 -------------
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *chosedImage=[info objectForKey: @"UIImagePickerControllerEditedImage" ];
[ self .navigationController dismissViewControllerAnimated: YES completion:^{
[ self sendImage:chosedImage];
}];
}
博友问题: 16 : 48 : 36
图片选完了、应该有个预览图的 。。
博友问题: 16 : 49 : 51
我写写看 。。
博友问题: 16 : 49 : 59
汗。。。没做过。杯具了