- (void) postUserIconImage:(UIImage *)image withNickName:(NSString *)nickName token:(NSString*)token SucceedBlock:(EditUserInfoModelBlock)succeedBlock errorBlock:(ErrorBlock)errorBlock {
// 创建管理者对象
AFHTTPSessionManager* AFManager = [AFHTTPSessionManager manager];
AFManager.requestSerializer = [AFJSONRequestSerializer serializer];
AFManager.responseSerializer = [AFJSONResponseSerializer serializer];
// header加token
[AFManager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
NSString* urlString = [NSString stringWithFormat:@"http://************/user/icon/%@", nickName];
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
// image转为数据,获得数据参数
NSData* imageData = UIImageJPEGRepresentation(image, 0.1);
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString* string = [formatter stringFromDate:[NSDate date]];
NSString* fileName = [NSString stringWithFormat:@"%@.jpeg", string];
[AFManager POST:urlString parameters:nil headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
// 添加数据参数
[formData appendPartWithFileData:imageData name:@"iconFile" fileName:fileName mimeType:@"image/jpeg"];
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
EditUserInfoModel* editUserInfoModel = [[EditUserInfoModel alloc] initWithDictionary:responseObject error:nil];
succeedBlock(editUserInfoModel);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
errorBlock(error);
}];
}
【iOS】使用AFN上传图片
最新推荐文章于 2024-03-09 10:00:04 发布
该代码段展示了一个在iOS应用中使用AFNetworking库上传用户头像的实现过程。它涉及到了图片压缩、HTTP请求设置、文件名生成以及上传进度的处理。成功回调中返回了EditUserInfoModel对象。
摘要由CSDN通过智能技术生成