QCloudUpload上傳多張圖片封裝工具類iOS

調(diào)用方法非常簡單
只需要初始定義一個(gè)全局變量
XMWUploadManager * _uploadManager =[ [XMWUploadManager creat] initXMUploadManager];//初始化

上傳圖片調(diào)用方法

[_uploadManager uploadLocalImage:imgArr  complete:^(NSMutableArray *imageUrlArr) {
           //imageUrlArr就是返回的圖片url數(shù)組
  }];

下面是源碼
.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;//總的上傳數(shù)量
__block NSMutableArray * _urlArray;//保存上傳過的圖片的url的數(shù)組
}

  • (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沼侣,創(chuàng)建的時(shí)候會(huì)返回給你
    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:@"服務(wù)器透穿信息"
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) {
                   //上傳的進(jìn)度    
                   }
                stateChange:^(TXYUploadTaskState state, NSDictionary *context) {
                    switch (state) {
                        case TXYUploadTaskStateWait:
                            NSLog(@"任務(wù)等待中");
                            break;
                        case TXYUploadTaskStateConnecting:
                            NSLog(@"任務(wù)連接中");
                            break;
                        case TXYUploadTaskStateFail:
                            NSLog(@"任務(wù)失敗");
                            [DejalBezelActivityView removeViewAnimated:YES];
                            break;
                        case TXYUploadTaskStateSuccess:
                            NSLog(@"任務(wù)成功");
                            [DejalBezelActivityView removeViewAnimated:YES];
                            break;
                        default:
                            break;
                    }}
 ];

}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轧膘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鳞滨,更是在濱河造成了極大的恐慌蟆淀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褒链,死亡現(xiàn)場離奇詭異甫匹,居然都是意外死亡惦费,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門喷兼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來后雷,“玉大人,你說我怎么就攤上這事勉抓『蜓В” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵隐圾,是天一觀的道長掰茶。 經(jīng)常有香客問我,道長盐碱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任县好,我火速辦了婚禮暖混,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘善绎。我一直安慰自己诫尽,他們只是感情好炬守,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布减途。 她就那樣靜靜地躺著,像睡著了一般鳍置。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怕轿,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天撞羽,我揣著相機(jī)與錄音,去河邊找鬼诀紊。 笑死隅俘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碌宴。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼董朝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了楼入?” 一聲冷哼從身側(cè)響起遥赚,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孕惜,沒想到半個(gè)月后毫炉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞄勾,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年四濒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舒裤。...
    茶點(diǎn)故事閱讀 40,912評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腾供,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徙硅,到底是詐尸還是另有隱情嗓蘑,我是刑警寧澤桩皿,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布泄隔,位于F島的核電站梅尤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏号枕。R本人自食惡果不足惜陨享,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一抛姑、第九天 我趴在偏房一處隱蔽的房頂上張望定硝。 院中可真熱鬧诲侮,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裙士。三九已至桌硫,卻和暖如春铆隘,著一層夾襖步出監(jiān)牢的瞬間南用,已是汗流浹背肿嘲。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匣屡,地道東北人捣作。 一個(gè)月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像也拜,于是被迫代替她去往敵國和親搪泳。 傳聞我的和親對象是個(gè)殘疾皇子岸军,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容