第一種:以文件流的形式上傳圖片。
formDate 設(shè)置數(shù)據(jù)name:@“改為傳給后臺(tái)的參數(shù)名”
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
//接收類型不一致請(qǐng)?zhí)鎿Q一致text/html或別的manager.responseSerializer.acceptableContentTypes= [NSSetsetWithObjects:@"application/json",
@"text/html",
@"image/jpeg",
@"image/png",
@"application/octet-stream",
@"text/json",
nil];
//AppDelegate*myDelegate = (AppDelegate*)[[UIApplicationsharedApplication]delegate];
//NSDictionary*dic =@{@"id":myDelegate.userId};
NSURLSessionDataTask*task = [managerPOST:urlparameters:dicconstructingBodyWithBlock:^(id_NonnullformData) {
NSData*imageDatas = imageData;
NSDateFormatter*formatter = [[NSDateFormatteralloc]init];
formatter.dateFormat=@"yyyyMMddHHmmss";
NSString*str = [formatterstringFromDate:[NSDatedate]];
NSString*fileName = [NSStringstringWithFormat:@"%@.jpg", str];
//上傳的參數(shù)(上傳圖片,以文件流的格式)
[formDataappendPartWithFileData:imageDatas
name:@"photo"
fileName:fileName
mimeType:@"image/jpeg"];
}progress:^(NSProgress*_NonnulluploadProgress) {
//打印下上傳進(jìn)度
NSLog(@"上傳進(jìn)度");
NSLog(@"%@",uploadProgress);
}success:^(NSURLSessionDataTask*_Nonnulltask,id_NullableresponseObject) {
//上傳成功
NSLog(@"上傳成功");
NSLog(@"%@",responseObject);
}failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {
//上傳失敗
NSLog(@"上傳失敗");
}];
第二種:將image轉(zhuǎn)成NSData,在進(jìn)行base64加密上傳。
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {
NSString*mediaType = [infoobjectForKey:UIImagePickerControllerMediaType];
UIImage*image = [[UIImagealloc]init];
if([mediaTypeisEqualToString:@"public.image"]){
image = [infoobjectForKey:@"UIImagePickerControllerOriginalImage"];
[_headimagesetImage:image];
//? ? ? ? [_changeBtn setImage:image forState:UIControlStateNormal];
NSData*data;
if(UIImagePNGRepresentation(image) ==nil) {
data =UIImageJPEGRepresentation(image,1);
}else{
data =UIImageJPEGRepresentation(image,0.001); //壓縮圖片,方便上傳
}
// ? ? ? //獲取文件路徑
NSString*imageString = [database64EncodedStringWithOptions:0];
轉(zhuǎn)成base64字符串imageString,再傳給給后臺(tái),在傳參中需要添加圖片的類型(@“png”或@“jpg”等)
}
[pickerdismissViewControllerAnimated:YEScompletion:nil];
}