iOS gif圖片上傳(AFNetworking封裝)

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{

//其他格式的圖片,直接請求壓縮后的圖片

}

}];


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:@{}]; //接口需要的參數

[managerPOST:STR_UTF_8(urlStr)parameters:paramtersconstructingBodyWithBlock:^(id_NonnullformData) {

//要上傳保存在服務器中的名稱

//使用時間來作為文件名2014-04-30 14:20:57.gif

//讓不同的用戶信息,保存在不同目錄中

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

//設置日期格式

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) {

?//網絡請求失敗,請稍候再試。

if(fail) {

fail();

}

}];

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容