1.解析asset
PHImageRequestOptions*options = [PHImageRequestOptionsnew];
options.resizeMode=PHImageRequestOptionsResizeModeFast;
options.synchronous=YES;
PHCachingImageManager*imageManager = [[PHCachingImageManageralloc]init];
[imageManagerrequestImageDataForAsset:asset
options:options
resultHandler:^(NSData*_NullableimageData,NSString*_NullabledataUTI,UIImageOrientationorientation,NSDictionary*_Nullableinfo) {
NSLog(@"dataUTI:%@",dataUTI);
//gif圖片
if([dataUTIisEqualToString:(__bridgeNSString*)kUTTypeGIF]) {
BOOLdownloadFinined = (![[infoobjectForKey:PHImageCancelledKey]boolValue] && ![infoobjectForKey:PHImageErrorKey]);
if(downloadFinined && imageData) {
NSString*method =@"user/uploadImage";
NSString*fileType =@"image/gif";
[JSONPost?? postUploadWithUrl:nil name:@"image" fileData:imageData fileType:fileType method:@"upload/image" param:@{@"method":method}success:^(idresponseObject) {
idjsonObject = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
}fail:^{
//上傳失敗
}];
}
}
else{
//其他格式的圖片卵佛,直接請(qǐng)求壓縮后的圖片
}
}];
2.AFNetworking封裝的上傳方法
+ (void)postUploadWithUrl:(NSString*)urlStr name:(NSString*)name fileData:(NSData*)fileData fileType:(NSString*)fileTye method:(NSString*)method param:(NSDictionary*)param success:(void(^)(idresponseObject))success fail:(void(^)())fail
{
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
manager.responseSerializer= [AFHTTPResponseSerializerserializer];
manager.requestSerializer.timeoutInterval= 20.0f;
NSMutableDictionary*paramters = [NSMutableDictionarydictionaryWithDictionary:@{}]; //接口需要的參數(shù)
[managerPOST:STR_UTF_8(urlStr)parameters:paramtersconstructingBodyWithBlock:^(id_NonnullformData) {
//要上傳保存在服務(wù)器中的名稱
//使用時(shí)間來(lái)作為文件名2014-04-30 14:20:57.gif
//讓不同的用戶信息,保存在不同目錄中
NSDateFormatter*formatter = [[NSDateFormatteralloc]init];
//設(shè)置日期格式
formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";
NSString*fileName = [formatterstringFromDate:[NSDatedate]];
fileName = [NSStringstringWithFormat:@"%@.gif",fileName];
//fileTye @"image/gif"
[formDataappendPartWithFileData:fileDataname:namefileName:fileNamemimeType:fileTye];
}progress:nilsuccess:^(NSURLSessionDataTask*_Nonnulltask,id_NullableresponseObject) {
if(success) {
success(responseObject);
}
}failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {
?//網(wǎng)絡(luò)請(qǐng)求失敗趟径,請(qǐng)稍候再試辐赞。
if(fail) {
fail();
}
}];
}