iOS图片上传

接下来在分享一下图片的上传到后台。使用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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值