iOS图片上传

来源:互联网 发布:淘宝保证金计划不符合 编辑:程序博客网 时间:2024/06/10 07:06

接下来在分享一下图片的上传到后台。使用AFN写的。
1 首先是单张图片的上传

- (void)upLoadPOSTImageWithImageData:(NSData *)imageData URLString:(NSString *)urlString parameters:(NSDictionary *)parameters imageKey:(NSString *)imageKey mimeType:(NSString *)mimeType{    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    [manager POST:urlString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {        [formData appendPartWithFileData:imageData name:imageKey fileName:@"Icon.jpeg" mimeType:mimeType];    } success:^(NSURLSessionDataTask *task, id responseObject) {        NSLog(@"上传成功 %@", responseObject);    } failure:^(NSURLSessionDataTask *task, NSError *error) {        NSLog(@"上传失败 %@", [error description]);    }];}

说说这里的几个参数的作用吧:

1. - (NSURLSessionDataTask *)POST:(NSString *)URLString                    parameters:(id)parameters     constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block                       success:(void (^)(NSURLSessionDataTask *task, id responseObject))success                       failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure;这是AFN中的方法:参数1:上传的URL参数2:上传参数参数3:上传的数据(图片等)参数4:上传成功的回调block块参数5:上传失败的回调block块2,对于参数3的说明:- (void)appendPartWithFileData:(NSData *)data name:(NSString *)nam fileName:(NSString *)fileName mimeType:(NSString *)mimeType;- 参数1:图片的NSData - 参数2:图片对应的上传参数- 参数3:图片名(上传到后台的xxx.jpg)- 参数4:图片的格式
  1. 多张图片的上传(批量)
#pragma mark - 利用AFNetworking将场地信息上传- (void)upLoadAddressWithURLString:(NSString *)urlString imageParameter:(NSString *)imageParameter parameters:(NSDictionary *)parameters images:(NSArray *)images{    // 做前期的准备处理    for (UIImage *img in images) {        if (![img isKindOfClass:[UIImage class]]) {            return;        }    }    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    [manager POST:urlString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {        int iCount = 0;        for (UIImage *img in images) {            NSData *imgData = UIImageJPEGRepresentation(img, 1);            NSString *fileName = [NSString stringWithFormat:@"placeImg%d.jpeg", iCount];            [formData appendPartWithFileData:imgData name:imageParameter fileName:fileName mimeType:@"image/jpeg"];            iCount++;        }    } success:^(AFHTTPRequestOperation *operation, id responseObject) {        NSLog(@"上传成功 结果 = %@", responseObject);    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"上传失败 %@", [error description]);    }];}-参数1:上传的URL-参数2: 图片对应的上传参数-参数3: 其他上传参数-参数4: 图片数组* 其实跟单张上传差不多,只不过是将多张图片转化NSData类型后字啊拼接到formData中。大家仔细看看就回明白到。大家可以根据自己的需求进行封装,这样就可以得到很多益处的。我只是将用法记录下来。便于今后的学习用,到时候根据具体的情况在进行封装。
1 0