AFHTTPRequestOperationManager注意点
来源:互联网 发布:windows 怎么使用ssh 编辑:程序博客网 时间:2024/05/22 00:49
AFHTTPRequestOperationManager注意点
ActionSheet在控制器view上,因为点击拍照时,会modal出另外一个控制器,当前的控制器view就会从窗口中移除。就会报ActionSheet不在窗口上。
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UIActionSheet *sheet = [[UIActionSheetalloc]initWithTitle:@"图片上传"delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:nilotherButtonTitles:@"拍照",@"相册",nil];
[sheet showInView:self.view];
}
#pragma mark -实现UIActionSheetDelegate代理方法
- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
UIImagePickerController *ipc = [[UIImagePickerControlleralloc]init];
ipc.delegate= self;
switch (buttonIndex) {
case 0:
if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])return;
ipc.sourceType= UIImagePickerControllerSourceTypeCamera;
break;
case 1:
if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])return;
ipc.sourceType= UIImagePickerControllerSourceTypePhotoLibrary;
break;
default:
break;
}
[selfpresentViewController:ipcanimated:YEScompletion:nil];
}
{
UIActionSheet *sheet = [[UIActionSheetalloc]initWithTitle:@"图片上传"delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:nilotherButtonTitles:@"拍照",@"相册",nil];
[sheet showInView:self.view];
}
#pragma mark -实现UIActionSheetDelegate代理方法
- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
UIImagePickerController *ipc = [[UIImagePickerControlleralloc]init];
ipc.delegate= self;
switch (buttonIndex) {
case 0:
if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])return;
ipc.sourceType= UIImagePickerControllerSourceTypeCamera;
break;
case 1:
if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])return;
ipc.sourceType= UIImagePickerControllerSourceTypePhotoLibrary;
break;
default:
break;
}
[selfpresentViewController:ipcanimated:YEScompletion:nil];
}
注意:
如果在switch的case中定义一个局部变量,需要用大括号括住。
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
{
// 关闭UIImagePickerController控制器
[selfdismissViewControllerAnimated:YEScompletion:nil];
NSLog(@"%@",info);
// 获取图片
UIImage *image = info[UIImagePickerControllerOriginalImage];
self.imageV.image= image;
}
- (IBAction)upLoad
{
// 创建一个管理者
AFHTTPRequestOperationManager *manger = [AFHTTPRequestOperationManagermanager];
// 设置参数
NSMutableDictionary *params = [NSMutableDictionarydictionary];
params[@"username"] =@"123";
params[@"pwd"] =@"123";
// 设置URL
NSString *url =@"http://192.168.15.56:8080/MJServer/upload";
[manger POST:url parameters:paramsconstructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
{
// 创建一个管理者
AFHTTPRequestOperationManager *manger = [AFHTTPRequestOperationManagermanager];
// 设置参数
NSMutableDictionary *params = [NSMutableDictionarydictionary];
params[@"username"] =@"123";
params[@"pwd"] =@"123";
// 设置URL
NSString *url =@"http://192.168.15.56:8080/MJServer/upload";
[manger POST:url parameters:paramsconstructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
注意:
在发送请求之前会自动调用这个block
需要在这个block中添加文件参数到formData中
NSData *fileData =UIImageJPEGRepresentation(self.imageV.image,1.0);
[formData appendPartWithFileData:fileDataname:@"file"fileName:@"image.png"mimeType:@"image/png"];
} success:^(AFHTTPRequestOperation*operation, id responseObject) {
NSLog(@"上传成功");
} failure:^(AFHTTPRequestOperation*operation, NSError *error) {
NSLog(@"上传失败");
}];
}
需要在这个block中添加文件参数到formData中
NSData *fileData =UIImageJPEGRepresentation(self.imageV.image,1.0);
[formData appendPartWithFileData:fileDataname:@"file"fileName:@"image.png"mimeType:@"image/png"];
} success:^(AFHTTPRequestOperation*operation, id responseObject) {
NSLog(@"上传成功");
} failure:^(AFHTTPRequestOperation*operation, NSError *error) {
NSLog(@"上传失败");
}];
}
注意:
1.保留照片的质量
NSData *fileData = UIImageJPEGRepresentation(self.imageV.image, 1.0);
2.AFN不能监听文件的上传进度,ASI可以监听文件的上传进度。
3.需要上传的文件的具体数据
FileData :需要上传的文件的具体数据
name : 服务器那边接收文件用的参数名
fileName : (告诉服务器)所上传文件的文件名
mimeType : 所上传文件的文件类型
name : 服务器那边接收文件用的参数名
fileName : (告诉服务器)所上传文件的文件名
mimeType : 所上传文件的文件类型
NSData*fileData = UIImageJPEGRepresentation(self.imageV.image,1.0);
[formData appendPartWithFileData:fileDataname:@"file"fileName:@"image.png"mimeType:@"image/png"];
[formData appendPartWithFileData:fileDataname:@"file"fileName:@"image.png"mimeType:@"image/png"];
4.需要上传的文件的URL路径
FileURL :需要上传的文件的URL路径
name : 服务器那边接收文件用的参数名
fileName : (告诉服务器)所上传文件的文件名
mimeType : 所上传文件的文件类型
NSURL*url = [[NSBundlemainBundle]URLForResource:@"itcast"withExtension:@"txt"];
[formData appendPartWithFileURL:urlname:@"file"fileName:@"test.txt"mimeType:@"text/plain"error:nil];
name : 服务器那边接收文件用的参数名
fileName : (告诉服务器)所上传文件的文件名
mimeType : 所上传文件的文件类型
NSURL*url = [[NSBundlemainBundle]URLForResource:@"itcast"withExtension:@"txt"];
[formData appendPartWithFileURL:urlname:@"file"fileName:@"test.txt"mimeType:@"text/plain"error:nil];
1 0
- AFHTTPRequestOperationManager注意点
- AFHTTPRequestOperationManager注意点 上传图片到服务器
- AFHTTPRequestOperationManager
- AFHTTPRequestOperationManager相关内容
- 注意点
- 注意点
- 注意点
- 注意点
- 注意点
- Split遇到“.”点注意点
- Java混淆点、注意点
- swift 使用 AFHTTPRequestOperationManager
- AFHTTPRequestOperationManager简单使用
- AFHTTPRequestOperationManager找不到的原因
- 食物注意点
- 制造中的注意点
- 详细设计 注意点
- DataReader使用注意点
- 大家好个妇科工具发
- [LeetCode] Symmetric Tree(对称镜像树的判别)
- Eclipse 配置 JAD
- 第17周项目 oj9876>>>>>>>>9>>>>>>>8>>>>>>>>7>>>>>6>>>>>>>>>9-6=3
- Strust2拦截器自定义拦截器实例--登录
- AFHTTPRequestOperationManager注意点
- CCommandLineInfo的作用
- Merge Sorted Array
- 六西格玛应用介绍
- 虚拟机下red hat enterprise linux6 网络连接
- vimdiff 快捷键
- MPI 初认识 (入门教程)
- java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
- Android事件