补充 : 选取照片后 单图上传&多图上传

本文介绍如何使用AFNetworking框架在iOS应用中实现单图及多图上传功能,包括图片压缩、文件名生成、参数设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注: 前提是导入第三方框架AFNetworking

单图上传

-(void)upLoadImage:(UIImage *)image completion:(void(^)(id responseObject, NSError *error))completion
{
    //   图片上传时必要将图片进行压缩,不然会上传失败
    NSString *urlString = @"上传地址";
    NSData *imageData = UIImageJPEGRepresentation(image, 0.4);
    // 1.单张图上传
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager POST:urlString
       parameters:@{@"username":@"zhangsan"}
constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        //使用日期生成图片名称
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *fileName = [NSString stringWithFormat:@"%@.png",[formatter stringFromDate:[NSDate date]]];
        [formData appendPartWithFileData:imageData name:@"uploadFile" fileName:fileName mimeType:@"image/png"];

    } success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
        //上传图片成功执行回调
        completion(responseObject,nil);
    } failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
        //上传图片失败执行回调
        completion(nil,error);
    }];
}

多图上传

-(void)upLoadImageArray:(NSArray *)imageArray completion:(void(^)(id responseObject, NSError *error))completion
{
    //2.多图上传
    NSString *urlString = @"";
    // 多图上传和单图上传区别在于文件名称
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    [manager POST:urlString
           parameters:nil
        constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

        NSInteger imgCount = 0;
        for (UIImage *image in imageArray) {

            NSData *imageData = UIImageJPEGRepresentation(image, 0.4);
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            //时间格式 带-: 可能会失败
            formatter.dateFormat = @"yyyyMMddHHmmssSSS";
            NSString *fileName = [NSString stringWithFormat:@"%@%@.png",[formatter stringFromDate:[NSDate date]],@(imgCount)];
            [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"uploadFile%@",@(imgCount)] fileName:fileName mimeType:@"image/png"];

            imgCount++;
        }
    } success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {

        completion(responseObject,nil);

    } failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {

        completion(nil,error);

    }];

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值