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);
? ? }];
}