在ios上的多部分表格/数据上传

问题描述:

<form method="post" action="upload.php?u=test&p=test" name="FrmUpload" autocomplete="off" enctype="multipart/form-data"> 
<input type="file" name="file" id="file" onchange="document.forms[0].submit();"/> 
</form> 

上述代码在html中有效。我想在AFnetworking多的音频文件上传到做:这是我的等效IOS代码:在ios上的多部分表格/数据上传

NSDictionary *dic = @{@"id":@"file"}; 

[[RequestOperationManager sharedManager] POST:@"my url string" parameters:dic 
constructingBodyWithBlock:^(id<AFMultipartFormData> formData){ 
     NSError *error = nil; 

     [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"my file path"] name:@"file" fileName:file mimeType:@"audio/aac" error:&error]; 

    }success:^(AFHTTPRequestOperation *operation, id responseObject){ 

    } failure:^(AFHTTPRequestOperation *operation, NSError *error){ 
      NSLog(@"%d : %@", error.code, error.description); 
     } 
    }]; 

它会返回错误:

错误域= NSCocoaErrorDomain代码= 3840“的操作couldn”吨完成(可可错误3840)”(JSON文本不与阵列或对象和选项,允许片段未设置启动。)

- (无效)uploadAudio { AFHTTPRequestOperationManager *经理= [[AFHTTPRequestOperation经理页头] *

initWithBaseURL:[NSURL URLWithString:@ “http://server.url];


NSData *imageData = UIImageJPEGRepresentation(self.avatarView.image, 0.5); 
NSDictionary *parameters = @{@"username": self.username, @"password" : self.password}; 
AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    //do not put image inside parameters dictionary as I did, but append it! 
    [formData appendPartWithFileData:imageData name:paramNameForImage fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
}]; 
[op start]; 

}

我觉得有些细节必须失去了......像乌尔网址......或钥匙.....