你可以看一下你传到后台后的数据,看看是不是收到的数据跟你上传的数据不一样。base64编码之后,data里面会含有一些“+”,而“+”通过post传到后台后,会被转换成空格。这样后台就接收不到图片了。你可以让后台将收到数据的空格替换成“+”,或者你看看下面的解决方法
UIImage *icon = _images[0];
NSData *imageData = UIImageJPEGRepresentation(icon, 0.1);
NSString *encodedString = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
// param[@"logo"] = encodedString;
// NSData *data = [NSData dataWithContentsOfFile:self.foodImagePath];
// NSString *baseStr = [data base64Encoding];
NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)encodedString,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
param[@"logo"] = baseString;
__weak typeof(self) weakSelf = self;
[self showBusys];
[CKHttpCommunicate createRequest:HTTP_COMMAND_update_userInfo WithParam:param withMethod:@"POST" success:^(id result) {
[weakSelf hideProgress];
YYTBaseModel *baseModel = [YYTBaseModel parse:result];
}
NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)encodedString,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
这个方法是关键把上传的字符串过滤一下