数据上传是通过ASIFormDataRequest类实现的。相当于HTML的表单,因此ASIFormDataRequest请求对象的作用相当于提交表单数据,默认是Post请求方法。
- (IBAction)onClick:(id)sender
{
NSString *strUrl = @"http://iosbook3.com/service/upload.php";
NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"ios_yaoxinchao@163.com" forKey :@"email"]; 【1】
NSString *path = [[NSBundle mainBundle] pathForResources:@"test1" ofType:@"jpg"];
[request setFile:path forKey:@"file"]; 【2】
// 设置代理
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestSuccess:)];
[request setDidFailSelector:@selector(requestError:)];
[request startAsynchronous];
}
【1】:提交数据,使用的方法是setPostValue:forKey:
【2】:上传数据,使用的方法setFile:forKey:
setFile是设置要上传文件的路径,forKey是设置的键名字,这个键的名字相当于html表单中上传控件:
<input type="file" name = "file">
name与forKey对应。