图片Base64上传

感谢前辈的分享的,我今天 就是碰到了这个问题,下面是我的解决方案

 

一直上传不成功,搜了N遍,尝试了N遍,终于找到了一个相关的,如下:

 

你可以看一下你传到后台后的数据,看看是不是收到的数据跟你上传的数据不一样。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);

这个方法是关键把上传的字符串过滤一下

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值