首页 > 移动平台 > 详细

ios base64图片上传

时间:2015-12-03 13:23:14      阅读:697      评论:0      收藏:0      [点我收藏+]

今天做图片上传,后台用的是base64解密图片二进制文件,以前都是用表单上传来解决图片上传的,现在后台没有人改,所以研究下base64上传。

需要将图片base64加密,但是调用

[data base64Encoding];

后得到的字符串上传到后台图片有问题,就是一张灰色图片。然后谷歌了下,发现这种方法得到的字符串里面含有一些特殊字符如“=,”什么的在post到后台后就会变成空格,所以图片会有问题。找到一个方法需要将这些特殊的字符进行UTF8编码:

    NSString* newImgStr = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                                           (CFStringRef)theImgStr,
                                                                                           NULL,
                                                                                           CFSTR(":/?#[]@!$&’()*+,;="),
                                                                                           kCFStringEncodingUTF8);

这样保存在内存中,发送的时候再转换为nsdata,同样要使用utf-8编码:

NSData *jsonData = [[self getDictStringFromDict:param] dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:jsonData];

 

但是改掉后发现post url到后台后台会报错,

Exception occurred during processing request: null

感觉可能是图片文件太大导致,所以将

UIImagePNGRepresentation改为

UIImageJPEGRepresentation并设置压缩比例为0.2。OK!,没有错误了,图片上传成功。

 

一波三折啊。呵呵

ios base64图片上传

原文:http://www.cnblogs.com/symen/p/5015569.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!