Iphone 正在上载文件

Iphone 正在上载文件,iphone,ios,afnetworking,Iphone,Ios,Afnetworking,是否有人使用AFNetworking完全实现了上传文件。我在网上找到了一些代码,但不完整。我找到的代码如下: AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://my.client.server.com"]]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setO

是否有人使用AFNetworking完全实现了上传文件。我在网上找到了一些代码,但不完整。我找到的代码如下:

AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://my.client.server.com"]];


NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:[fieldName text] forKey:@"field01_nome"];
[parameters setObject:[fieldSurname text] forKey:@"field02_cognome"];



NSMutableURLRequest *myRequest = [client multipartFormRequestWithMethod:@"POST" path:@"/Contents/mail/sendToForm.jsp" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:myNSDataToSend mimeType:@"image/jpeg" name:@"alleagto"];
}];


AFHTTPRequestOperation *operation = [AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest success:^(id object) {
    NSLog(@"Success");

} failure:^(NSHTTPURLResponse *response, NSError *error) {
    NSLog(@"Fail");

}];


[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
    NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite);

}];

queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];
在myNSDataToSend

在这里:

AFHTTPRequestOperation *operation = [AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest success:^(id object) {
    NSLog(@"Success");

} failure:^(NSHTTPURLResponse *response, NSError *error) {
    NSLog(@"Fail");

}];
错误是:

未找到类方法“+HTTPRequestOperationWithRequest:success:failure”(返回类型默认为“id”)

在这方面的任何帮助和AFNetworks的上传都将是惊人的


谢谢。

首先,请确保已下载最新版本的AFNetworking

AFHTTPRequestOperation+HTTPRequestOperationWithRequest:success:failure:
在几个版本后被删除。相反,您可以使用直接属性访问器(
operation.completionBlock=^{…}
)或
-setCompletionBlockWithSuccess:failure:
设置
completionBlock
,然后使用
-setcompletionblock=^{…}
。请记住,完成块在请求完成下载后执行

对于多部分表单块,
-appendWithFileData:mimeType:name
不久前也被删除。您需要的方法是
-appendPartWithFileData:name:fileName:mimeType:


进行这两个更改,一切都应该正常。

Hmm,我仍然(a)在AFHTTPClient.m中找到该方法,(b)得到一个编译错误。除了我的错误是“匿名类的声明必须是一个定义”。我可以在哪里解决这个问题?@mattt,我可以从
多部分/表单数据更改内容类型吗multipartFormRequestWithMethod
方法上载图像时,是否将code>转换为
image/jpeg
?需要你的帮助@AlmasAdilbek没有。您发送的是一个包含JPEG部分的多部分表单,而不是JPEG本身。@mattt面临着同样的问题,正在寻找一些函数,请允许我发布一个文件。
AFHTTPRequestOperation *operation = [AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest success:^(id object) {
    NSLog(@"Success");

} failure:^(NSHTTPURLResponse *response, NSError *error) {
    NSLog(@"Fail");

}];