QCloudUpload上传多张图片封装工具类iOS

调用方法非常简单
只需要初始定义一个全局变量
XMWUploadManager * _uploadManager =[ [XMWUploadManager creat] initXMUploadManager];//初始化

上传图片调用方法

[_uploadManager uploadLocalImage:imgArr  complete:^(NSMutableArray *imageUrlArr) {
           //imageUrlArr就是返回的图片url数组
  }];

下面是源码
.h文件

#import <Foundation/Foundation.h>

@interface XMWUploadManager : NSObject

+(XMWUploadManager*)creat;

- (void)initXMUploadManager;

//上传图片方法
- (void)uploadLocalImage:(NSArray*)imageArray complete:(void(^)(NSMutableArray* imageUrlArr))completed;

@end```
.m文件

import "XMWUploadManager.h"

import "TXYUploadManager.h"

@interface XMWUploadManager()

@property (nonatomic,strong) TXYUploadManager *uploadImageManager;
@property (nonatomic,copy) NSString * appId;
@property (nonatomic,copy) NSString * bucket;
@property (nonatomic,copy) NSString * persistenceId;
@property (nonatomic,copy) NSString * sign;
@property (nonatomic,strong) TXYUploadTask * uploadPhotoTask;
@property (nonatomic,strong) UIImage * upImage;
@end

@implementation XMWUploadManager
{
__block NSInteger _upPhotoNum;//总的上传数量
__block NSMutableArray * _urlArray;//保存上传过的图片的url的数组
}

  • (XMWUploadManager*)creat{
    return [[XMWUploadManager alloc]init];
    }
  • (instancetype)init{
    if (self = [super init]) {
    [self initXMUploadManager];
    }
    return self;
    }
  • (void)initXMUploadManager{
    _urlArray = [NSMutableArray array];
    self.appId = @"appid写自己的";//腾讯云appID,创建的时候会返回给你
    self.bucket = @"bucketname";//上传的仓库名字 自定义
    self.persistenceId = @"persistenceId";//自定义,唯一,没有限制persistenceId
    [self getJiandingCode:nil];
    _uploadImageManager = [[TXYUploadManager alloc] initWithCloudType:TXYCloudTypeForImage
    persistenceId:self.persistenceId
    appId:self.appId];
    }

-(void)getJiandingCode:(UIImage*)image{

[HttpRequest getWithURLString:SIGN_URL parameters:nil success:^(id responseObject) {
    self.sign = [responseObject objectForKey:@"sign"];
    if(image!=nil){

// [self uploadImage:image];
}
} failure:^(NSError *error) {
self.sign = nil;
}];

}

  • (void)getSign:(void(^)(BOOL success))compled{
    [HttpRequest getWithURLString:SIGN_URL parameters:nil success:^(id responseObject) {
    self.sign = [responseObject objectForKey:@"sign"];
    if (compled) {
    compled(YES);
    }
    } failure:^(NSError *error) {
    self.sign = nil;
    if (compled) {
    compled(NO);
    }
    }];
    }
  • (void)uploadLocalImage:(NSArray)imageArray complete:(void(^)(NSMutableArray imageUrlArr))completed{
    _upPhotoNum = imageArray.count;
    if (![XMNullTextManager isXMBlank:self.sign]) {
    for(int i = 0;i<imageArray.count;i++){
    [self uploadImage:imageArray[i] complete:^(BOOL success, NSString *url) {
    _upPhotoNum--;
    if (success) {
    [_urlArray addObject:url];
    }
    if (_upPhotoNum==0) {
    if (completed) {
    completed(_urlArray);
    }
    }
    }];
    }

    }else{
    [self getSign:^(BOOL success) {

          for(int i = 0;i<imageArray.count;i++){
              [self uploadImage:imageArray[i] complete:^(BOOL success, NSString *url) {
                  _upPhotoNum--;
                  if (success) {
                      [_urlArray addObject:url];
                  }
                  if (_upPhotoNum==0) {
                      if (completed) {
                          completed(_urlArray);
                      }
                  }
              }];
          }
    
          
      }];
    

    }

}

// 上传方法
-(void)uploadImage:(UIImage*)image complete:(void(^)(BOOL success, NSString * url))completed
{
self.uploadPhotoTask = [[TXYPhotoUploadTask alloc] initWithImageData: UIImageJPEGRepresentation(image, 1.0)
fileName:@"name"
sign:self.sign
bucket:self.bucket
expiredDate:0
msgContext:@"服务器透穿信息"
fileId:nil];
//[self showLoadingWithView:self];
//上传图片总共四步之 第五步: 上传
[_uploadImageManager upload:_uploadPhotoTask
complete:^(TXYTaskRsp *resp, NSDictionary *context) {
TXYPhotoUploadTaskRsp * photoTask = (TXYPhotoUploadTaskRsp *)resp;
if (resp.retCode>=0) {
//上传成功
if (completed) {
completed(YES,photoTask.photoURL);
}
}else{
//上传失败
if (completed) {
completed(NO,nil);
}
}

                   }
                   progress:^(int64_t totalSize, int64_t sendSize, NSDictionary *context) {
                   //上传的进度    
                   }
                stateChange:^(TXYUploadTaskState state, NSDictionary *context) {
                    switch (state) {
                        case TXYUploadTaskStateWait:
                            NSLog(@"任务等待中");
                            break;
                        case TXYUploadTaskStateConnecting:
                            NSLog(@"任务连接中");
                            break;
                        case TXYUploadTaskStateFail:
                            NSLog(@"任务失败");
                            [DejalBezelActivityView removeViewAnimated:YES];
                            break;
                        case TXYUploadTaskStateSuccess:
                            NSLog(@"任务成功");
                            [DejalBezelActivityView removeViewAnimated:YES];
                            break;
                        default:
                            break;
                    }}
 ];

}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容