2012-01-31 76 views
1

我想上傳文件,像這樣:AFNetworking上傳文件到服務器,參數

NSMutableDictionary * lParameters = [NSMutableDictionary dictionary]; 
    [lParameters setObject:@"temp.jpg" forKey:@"file"]; 

    NSMutableURLRequest *request = [self multipartFormRequestWithMethod:@"POST" path:@"uploads/add.json" parameters:lParameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) 
    { 
    NSData * data = [NSData dataWithContentsOfFile:filePath]; 
    [formData appendPartWithFileData:data name:@"temp.jpg" fileName:@"temp.jpg" mimeType:@"image/jpeg"]; 
    }]; 

    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request 
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON){ 
    .... 

我上傳的JSON看起來像這樣:

http://base/url/uploads/add.json

而且只有一個參數「文件」。 服務器返回錯誤:「未指定的必需參數:文件」。 我應該如何設置參數。爲什麼不工作:

NSMutableDictionary * lParameters = [NSMutableDictionary dictionary]; 
    [lParameters setObject:@"temp.jpg" forKey:@"file"]; 

請幫忙。

+0

嘗試用'name:@「file」替換'name:@「temp.jpg」''並刪除lParameters字典。 – Felix 2012-01-31 09:51:51

回答

2

您可能不應該在參數字典中設置temp.jpg。相反,請嘗試將name設置爲appendPartWithFileData:...file

如果這樣不能解決問題,請提供服務器對應於該錯誤的回溯。

+0

感謝它的工作 – 2012-01-31 17:00:50