iOS 從相冊上傳GIF

iOS 11支持GIF文件了。那么怎么上傳自己想要的GIF圖片呢,

1.調(diào)用相冊:UIImagePickerController 拿到代理返回的info數(shù)組。


2,最重要的一步,轉(zhuǎn)為NSData(一般服務(wù)器以data 上傳),用系統(tǒng)#import <Photos/Photos.h>

如果是iOS 11 以前,則可以用<AssetsLibrary/AssetsLibrary.h>

-(void)tranUpLoadImageGifWithImage:(NSDictionary<NSString *,id> *)info{

? ? // 上傳gif

? ? //轉(zhuǎn)為NSData

?? ?if(@available(iOS11.0, *)) {

? ? ? ? PHAsset *phAss = [info valueForKey:UIImagePickerControllerPHAsset];

? ? ? ? PHImageRequestOptions *options = [PHImageRequestOptions new];

? ? ? ? options.resizeMode = PHImageRequestOptionsResizeModeFast;

? ? ? ? options.synchronous=YES;

? ? ? ? PHCachingImageManager *mager = [[PHCachingImageManager alloc]init]; ? [magerrequestImageDataForAsset:phAssoptions:optionsresultHandler:^(NSData*_NullableimageData,NSString*_NullabledataUTI,UIImageOrientationorientation,NSDictionary*_Nullableinfo) {

????NSLog(@"能拿到:%@",imageData);

? ? //上傳服務(wù)器的方法?

?[selfupLoadImageData:imageData];

? ? ? ? }];

? ? }else{

? ? ? ? // Fallback on earlier versions

? ? }

}

3. 拿到NSData,就能上傳服務(wù)器啦

-(void)upLoadImageData:(NSData*)data{

????自己服務(wù)器上傳地址?

? ? NSString*urlString = [NSStringstringWithFormat:@"%@",BASE_URL];

? ? NSDictionary *params = @{@"image_model":@"1"};

? ? AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

? ? [ProgressHUD showLoading];

? ? [managerPOST:urlStringparameters:paramsheaders:nilconstructingBodyWithBlock:^(id? _NonnullformData) {

? ? ? ? NSString*str =@"image_file";

? ? ? ? NSString*fileName;

? ? ? ? // 上傳圖片,以文件流的格式

? ? ? ? /**

?? ? ? ? *filedata : 圖片的data

?? ? ? ? *name? ? : 后臺的提供的字段

?? ? ? ? *mimeType : 類型

?? ? ? ? */

? ? ? ? fileName = [NSStringstringWithFormat:@"%@.gif", str];

? ? ? ? [formDataappendPartWithFileData:dataname:strfileName:fileNamemimeType:@"image/gif"];

? ? }progress:NULLsuccess:^(NSURLSessionDataTask*_Nonnulltask,id? _NullableresponseObject) {

? ? ? ? [ProgressHUDdismiss];

? ? ? ? //打印看下返回的是什么東西

? ? ? ? NSLog(@"上傳圖片成功:%@",responseObject);

? ? ? ? [ProgressHUDshow:@"圖片上傳成功!"];

? ? }failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {

? ? ? ? [ProgressHUDdismiss];

? ? ? ? [ProgressHUDshow:@"圖片上傳失敗!"];

?? ? ? ?NSLog(@"上傳圖片失敗,失敗原因是:%@", error);

? ? }];

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容