iOS上传图片或者头像到服务器。

来源:互联网 发布:女明星淘宝店铺大全 编辑:程序博客网 时间:2024/05/01 19:53

 

UIImage * image = [message valueForKey:@"originalImage"];    NSString *image_string=nil;    if ([[UIDevice currentDevice].systemVersion floatValue]>=7.0) { image_string = [(UIImageJPEGRepresentation(image, 0.1)) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];            }else{image_string = [(UIImageJPEGRepresentation(image, 0.1)) base64Encoding];            }    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://appweb.app.cn"]];    manager.requestSerializer.timeoutInterval = 100;    NSData *nataBig = (UIImageJPEGRepresentation(image, 1.0));    NSData *nataSmall = (UIImageJPEGRepresentation(image, 0.1));    ;    NSLog(@"压缩前=%ld  压缩后=%lu",nataBig.length,(unsigned long)nataSmall.length);    NSLog(@"压缩比=%@%%",[NSString stringWithFormat:@"%.2f",(nataSmall.length)/(nataBig.length)]);    ;    NSMutableDictionary *paras = [[NSMutableDictionary alloc]init];    [paras setValue:self.msgType forKey:@"msgType"];    //以file的形式上传,这里的key很重要"accessory",这个是和服务器端对应的,千万不能乱写,一定要看接口文档,不然会上传失败    [paras setValue:(__bridge id)((__bridge FILE *)(image_string)) forKey:@"accessory"];    [paras setValue:[BLLUser getPushToken] forKey:@"senderPushToken"];    [paras setValue:self.receiverPushToken forKey:@"receiverPushToken"];    [paras setObject:[Base getKey] forKey:@"ukey"];    //@"chat/chat.htm"为上传路径    AFHTTPRequestOperation * operation = [manager POST:@"chat/chat.htm" parameters:paras constructingBodyWithBlock:^(id<AFMultipartFormData> formData)        {            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];            formatter.dateFormat = @"yyyyMMddHHmmss";            NSString *str = [formatter stringFromDate:[NSDate date]];            NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];   //fileName这里取当前时间戳   //accessory还是一样和服务端对应,具体看你自己的接口文档   //mimeType选择@"image/jpeg",意思是告诉服务端,我上传的文件类型是图片类型,后缀是jpeg格式的,这里需要注意        [formData appendPartWithFileData:(UIImageJPEGRepresentation(image, 0.1)) name:@"accessory" fileName:fileName mimeType:@"image/jpeg"];        }        success:^(AFHTTPRequestOperation *operation, NSData * responseObject)        //上传成功block       {           NSLog(@"上传成功!");        NSError * error;        NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];           //json解析得到存储服务器返回的字典        NSLog(@"图片状态 :%@",dic[@"msg"]);                    }        failure:^(AFHTTPRequestOperation *operation, NSError *error)                {                    //连接服务器失败                    NSLog(@"图片发送失败");                }];    operation.responseSerializer = [AFHTTPResponseSerializer serializer];    [operation start];


0 0
原创粉丝点击