iOS 上传图片到服务器
1.单张图片上传
//上传图片(单张)+(void)uploadPhotoAndController:(UIViewController*)controller WithSize:(CGSize)size Image:(UIImage*)image AndFinish:(void(^)(NSDictionary*,NSError*))finish{//加载提示菊花MBProgressHUD *hud;if(controller){ hud = [MBProgressHUD showHUDAddedTo:controller.viewanimated:YES]; hud.label.text=NSLocalizedString(@"加载中...",@"HUD loading title"); }//1. 存放图片的服务器地址,这里我用的宏定义NSString* url = [NSStringstringWithFormat:@"%@%@",Hx_Main_heard_API,IMAGE_UPLOAD_URL_API];//2. 利用时间戳当做图片名字NSDateFormatter*formatter = [[NSDateFormatteralloc] init]; formatter.dateFormat=@"yyyyMMddHHmmss";NSString*imageName = [formatter stringFromDate:[NSDatedate]];NSString*fileName = [NSStringstringWithFormat:@"%@.jpg",imageName];//3. 图片二进制文件NSData*imageData =UIImageJPEGRepresentation(image,0.7f);NSLog(@"upload image size: %ld k", (long)(imageData.length/1024));//4. 发起网络请求AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer= [AFHTTPRequestSerializer serializer]; manager.responseSerializer= [AFJSONResponseSerializer serializer]; [manager POST:url parameters:nilconstructingBodyWithBlock:^(id formData) {// 上传图片,以文件流的格式,这里注意:name是指服务器端的文件夹名字[formData appendPartWithFileData:imageData name:@"file"fileName:fileName mimeType:@"image/jpeg"]; } success:^(AFHTTPRequestOperation *operation,idresponseObject) {//上传成功时的回调[hud hideAnimated:YES];NSLog(@"%@",responseObject); finish(responseObject,nil); } failure:^(AFHTTPRequestOperation *operation,NSError*error) {//失败时的回调[hud hideAnimated:YES]; finish(nil,error); }];}
2.多张图片上传
// 上传图片(多张)+(void)uploadPhotoAndController:(UIViewController*)controller WithSize:(CGSize)size Image:(UIImage*)image AndFinish:(void(^)(NSDictionary*,NSError*))finish{//加载提示菊花MBProgressHUD *hud;if(controller){ hud = [MBProgressHUD showHUDAddedTo:controller.viewanimated:YES]; hud.label.text=NSLocalizedString(@"加载中...",@"HUD loading title"); }//1. 存放图片的服务器地址,这里我用的宏定义NSString* url = [NSStringstringWithFormat:@"%@%@",Hx_Main_heard_API,IMAGE_UPLOAD_URL_API];//2. 发起网络请求AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer= [AFHTTPRequestSerializer serializer]; manager.responseSerializer= [AFJSONResponseSerializer serializer]; [manager POST:url parameters:nilconstructingBodyWithBlock:^(id formData) {// 上传多张图片for(NSIntegeri =0; i
文/Jingege(简书作者)
原文链接:http://www.jianshu.com/p/9ddc2286353e
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。