ios用asi怎么上传系统相册照片
发布网友
发布时间:2022-04-25 15:33
我来回答
共1个回答
热心网友
时间:2023-10-13 06:48
1.新建一个single view工程,导入ASIHttpRequest库,导入MobileCoreServices、CFNetwork、SystemConfiguration和libz1.2.5.dylib四个系统库
2.随便导入一张图片,比如haoyou.png
3.ViewController.h
#import <uikit uikit.h="">
#import "ASIHTTPRequest.h"
#import "ASIFormDataRequest.h"
@interface ViewController : UIViewController
@property (nonatomic, copy)NSString *m_auth;
@end</asihttprequestdelegate></uikit>
4.ViewController.m 添加两个按钮
(void)viewDidLoad {
[super viewDidLoad];
UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
loginBtn.frame = CGRectMake(100, 20, 120, 40);
[loginBtn setTitle:@"登录" forState:UIControlStateNormal];
[loginBtn addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:loginBtn];
UIButton *uploadBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
uploadBtn.frame = CGRectMake(100, 80, 120, 40);
[uploadBtn setTitle:@"上传" forState:UIControlStateNormal];
[uploadBtn addTarget:self action:@selector(upload) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:uploadBtn];
}
5.实现login和upload两个方法
- (void)login {
NSURL *url = [NSURL URLWithString:@"..."];//此处省略请求url
//请求
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.tag = 10;
request.delegate = self;
[request startAsynchronous];
}
- (void)upload {
NSURL* url = [NSURL URLWithString:@"..."];//此处省略请求url
UIImage* img = [UIImage imageNamed:@"haoyou.png"];
NSData* data = UIImagePNGRepresentation(img);
//ASIFormDataRequest请求是post请求,可以查看其源码
ASIFormDataRequest* request = [ASIFormDataRequest requestWithURL:url];
request.tag = 20;
request.delegate = self;
[request setPostValue:self.m_auth forKey:@"m_auth"];
// [request setFile:@"tabbar.png" forKey:@"haoyou"];//如果有路径,上传文件
[request setData:data withFileName:@"tmp.png" andContentType:@"image/png" forKey:@"headimage"];
// 数据 文件名,随便起 文件类型 设置key
[request startAsynchronous];
}
6.实现协议
- (void)requestFailed:(ASIHTTPRequest *)request {
NSLog(@"请求失败");
}
- (void)requestFinished:(ASIHTTPRequest *)request {
if (request.tag == 10) {
NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:request.responseData options:0 error:nil];
self.m_auth = [dic objectForKey:@"m_auth"];
NSLog(@"%@", self.m_auth);
}
if (request.tag == 20) {
NSLog(@"%@", request.responseString);
}
}