美文网首页
IOS OSS之图片上传(可以多张图片)上传视频

IOS OSS之图片上传(可以多张图片)上传视频

作者: 明似水 | 来源:发表于2019-07-11 23:17 被阅读0次

下面我来介绍一下如何使用OSS上传图片:

下载链接:下载链接

首先,我们需要注册账号,拿到秘钥:

//需要的一些基本信息
static NSString *const AccessKey = @"";
static NSString *const SecretKey = @"";
static NSString *const BucketName = @"";
static NSString *const AliYunHost = @"";
static NSString *kTempFolder = @"";
static NSString *rootUrl = @"";

下面是我封装的几个方法,可以同步或异步,多张图片或者单张图片的上传方法:

// 当前上传段长度、当前已经上传总长度、一共需要上传的总长度
typedef void(^HBUploadImageManageProgressBlock)(int64_t bytesSent, int64_t totalByteSent ,int64_t totalBytesExpectedToSend);

@interface HBUploadImageManage : NSObject
//异步上传单张图片
+ (void)asyncUploadImage:(UIImage *)image progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names,UploadImageState state))complete;
//同步上传单张图片
+ (void)syncUploadImage:(UIImage *)image progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names,UploadImageState state))complete;
//异步上传多张图片
+ (void)asyncUploadImages:(NSArray<UIImage *> *)images progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//同步上传多张图片
+ (void)syncUploadImages:(NSArray<UIImage *> *)images  progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//异步单个上传视频
+ (void)asyncUploadVideo:(NSData *)data progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//同步单个上传视频
+ (void)syncUploadVideo:(NSData *)data progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;

设置回调类型:

typedef NS_ENUM(NSInteger, UploadImageState) {
    UploadImageFailed   = 0,
    UploadImageSuccess  = 1
};

下面介绍一下使用方法:

//上传图片
        [HBUploadImageManage asyncUploadImage:img progress:^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
            
        } complete:^(NSArray<NSString *> *names, UploadImageState state) {
            if (state == UploadImageSuccess) {
                NSLog(@"上传默认图成功");
                
            }else{
               
            }
        }];

上传视频

[self showLoadingInWindowWithMessage:@"上传中..."];
    [HBUploadImageManage asyncUploadVideo:self.videoData progress:^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
        NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
        
    } complete:^(NSArray<NSString *> *names, UploadImageState state) {
        [weakSelf dissmissWindowHud];
        if (state == UploadImageSuccess) {
            NSLog(@"上传视频成功");
            weakSelf.customNavBar.rightButton.enabled = YES;
            //有图
            if ([HBHuTool judgeArrayIsNotEmpty:names]) {
                //拿到图片
                [weakSelf updateDefineVideoImageArray:names];
            }else{
                NSLog(@"上传默认图失败");
                [weakSelf showInfoHudWithMessage:@"上传失败!请重新上传"] ;
            }
        }else{
            weakSelf.customNavBar.rightButton.enabled = YES;
            //上传失败
            [weakSelf showInfoHudWithMessage:@"上传失败!请重新上传"] ;
        }
    }];

如果对你有用,请给一个赞,你的赞是我分享的动力!

END.

相关文章

网友评论

      本文标题:IOS OSS之图片上传(可以多张图片)上传视频

      本文链接:https://www.haomeiwen.com/subject/gtxlkctx.html