Ba64 编码处理上传图片的参数失效问题
2015-01-14 20:05
141 查看
在一次项目中,要post图片到服务器上去,在之前要将图片转换成base64的格式。但是发现post上去的图片在服务器端总是不存在,经过与后台数据的对比发现image转成base64String里的“+”,post到服务器上都变成了空格。郁闷的很呀!开始没仔细去想,就直接叫后台将我post的string中的空格全部替换成“+”,这倒也算是解决了这个问题。但是总觉得这不是解决问题的最佳途径。后台经过查看一些资料,终于发现这个情况在post时,如果url中含有特殊字符(如“+=等”)就会出现的。但是在post之前对这些特殊符号做一次UTF8就可以了解决这个问题了。下面贴代码:
[objc] view
plaincopy
NSString *baseStr = [imgData base64Encoding];
NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)baseStr,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
[urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];
[objc] view
plaincopy
NSString *baseStr = [imgData base64Encoding];
NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)baseStr,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
[urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];
相关文章推荐
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- php中使用GD处理图片时,php文件为UTF-8编码时不能正常运行的问题
- 处理用户上传图片大小不一,前台显示的问题
- 图片文件上传到工程目录是,重新部署时文件丢失问题处理
- ajaxFileUpload 上传文件/图片,传参数,解决第二次无法上传问题
- IOS开发 图片的上传和下载(关于编码问题)
- springmvc图片上传遇到的问题(除了图片还要传文字)乱码参数取不到
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- httpclient上传图片与参数,处理中文乱码
- jQuery插件之ajaxFileUpload(异步上传图片并实时显示,并解决onchange后ajaxFileUpload失效问题)
- 处理同一页面中借助form+input[type="file"]上传图片出现的input无法清空问题
- Spring MVC 中的同步图片上传 参数解析问题
- Alamofire上传图片解决绑定参数问题
- 解决网页异步上传图片时不断更换预览图片时数据库累积文件问题与ajaxUploadFile上传多个参数问题
- jQuery插件之ajaxFileUpload(异步上传图片并实时显示,并解决onchange后ajaxFileUpload失效问题)
- 完美处理SpringMVC文件上传的一系列问题(无法获取参数、断点、分片等)
- 使用Java上传图片经过压缩处理图片变色问题