您的位置:首页 > 移动开发 > IOS开发

把图片作为参数POST到服务器

2015-10-22 18:38 465 查看
向服务器上传图片的方法之一,比如用户头像。
1.UIImage * image=[UIImage imageNamed:@"IMAGE"];
2.NSData * data =UIImagePNGRepresentation(image);
3.NSString * imageStr =[GTMBase64stringByEncodingData:data]; //用到GTMBase64 编码
4.NSString * resultStr = [XXX encodeString:imageStr];
5.服务器也许获取图片格式,方法:typeForImageData;
6.把ImageStr和图片格式作为参数POST到服务器

在把图片转化成NSString类型参数时,服务器可能要求把字符串 经过URLEcoding,就是下面这个方法。
//URLEncode
+(NSString*)encodeString:(NSString*)unencodedString{
// CharactersToBeEscaped = @":/?&=;+!@#$()~',*";
    // CharactersToLeaveUnescaped = @"[].";
    NSString *encodedString = (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)unencodedString,
                                                             NULL,
                                                              (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                             kCFStringEncodingUTF8));
    return encodedString;
}

//URLDEcode
-(NSString *)decodeString:(NSString*)encodedString

{
    //NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];
    NSString *decodedString  = (__bridge_transferNSString
*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
                                                                                                                     (__bridgeCFStringRef)encodedString,
                                                                                                                    CFSTR(""),
                                                                                                                    CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
    return decodedString;
}
//获取 图片的种类(先把UIIMage转化成NSData类型)。
+(NSString *)typeForImageData:(NSData *)data{
    uint8_t c;
    [data getBytes:&clength:1];
    switch (c) {
        case0xFF:
            return@"image/jpeg";
        case0x89:
            return@"image/png";
        case0x47:
            return@"image/gif";
        case0x49:
        case0x4D:
            return@"image/tiff";
    }returnnil;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息