您的位置:首页 > 其它

图片上传到七牛,客户端生产自签名

2015-12-24 17:11 225 查看
#import <Foundation/Foundation.h>

#import "NSString+md5String.h"

@interface NDBizCodeUtil : NSObject

+ (NDBizCodeUtil *) shareBizCodeUntil;

- (NSString *)generateImgKeyWithUserID:(NSString *)userId imageName:(NSString *)imageName;

#import "NDBizCodeUtil.h"

@implementation NDBizCodeUtil

+ (NDBizCodeUtil *) shareBizCodeUntil

{

static NDBizCodeUtil *shareInstance = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

shareInstance = [[super allocWithZone:NULL] init];

});

return shareInstance;

}

+(instancetype) allocWithZone:(struct _NSZone *)zone{

return [self shareBizCodeUntil];

}

- (NSString *)generateImgKeyWithUserID:(NSString *)userId imageName:(NSString *)imageName

{

NSString *imageKey = nil;

userId = userId?userId:@"";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

[formatter setDateFormat:@"yyyyMMddHHmm"];

NSString *dateStr = [formatter stringFromDate:[NSDate date]];

DLog(@"分钟:%@",dateStr);

[formatter setDateFormat:@"yyyyMMddHHmmssSSS"];

NSString *millisecond =[formatter stringFromDate:[NSDate date]];

DLog(@"毫秒:%@",millisecond);

if (!imageName) {

imageName = dateStr;

}

NSString *randomStr = [imageName stringByAppendingFormat:@"|%@|%@",millisecond,userId];

randomStr = [randomStr md5HexDigest];

imageKey = [dateStr stringByAppendingString:[randomStr substringWithRange:NSMakeRange(0,25)]];

return imageKey;

}

@end

- (void)updateImage:(UIImage *)upImage imageName:(NSString *)imageName userID:(NSString *)userId imageSize:(CGSize)size complete:(Complete)callback

{

if (![self authorizeWithUserID:userId]) {

return;

}

UIImage *uploadImage = upImage;

if (size.width != 0 && size.height != 0) {

uploadImage = [UIImageTransformation imageByScalingAndCroppingForSize:size image:upImage];

}

NDNetworkRequest *imageUpadeTokenRequest = [[NDNetworkRequest alloc] initWithBaseURL:[NSURL URLWithString:kHostAddressURL]];

[imageUpadeTokenRequest request:kRequestQiniuUpdateToken WithGETParameters:nil completion:^(NSInteger code,id responseObject, NSError *error) {

self.targertViewController = nil;

if (!error) {

//Todo,上传图片到Qiniu

NSString *uploadToken = [responseObject objectForKey:@"uploadToken"];

//TODO 客户端自我生产key

NSString *key = [[NDBizCodeUtil shareBizCodeUntil] generateImgKeyWithUserID:userId imageName:imageName];

NSLog(@"key ===== %@",key);

QNUploadManager *uploadManager = [QNUploadManager sharedInstanceWithConfiguration:nil];

QNUploadOption *opt = [[QNUploadOption alloc] initWithMime:@"image/jpeg" progressHandler:nil params:@{ @"x:foo":@"fooval" } checkCrc:YES cancellationSignal:nil];

[uploadManager putData:UIImageJPEGRepresentation(uploadImage, 0.8) key:key token:uploadToken complete:^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {

DLog(@"info :%@", info);

if (info.statusCode == 200) {

DLog(@"resp : %@", resp);

dispatch_async(dispatch_get_main_queue(), ^{

callback(resp,nil);

});

}else{

DLog(@"上传图片错误");

NSError *mError = [[NSError alloc] initWithDomain:@"com.needapp.need" code:info.statusCode userInfo:@{NSLocalizedDescriptionKey:@"上传图片错误"}];

dispatch_async(dispatch_get_main_queue(), ^{

callback(nil,mError);

});

}

} option:opt];

}else{

DLog(@"获取上传图片token错误");

dispatch_async(dispatch_get_main_queue(), ^{

callback(nil,error);

});

}

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: