0

私のバックエンド コーダーは、ファイル アップロードの curl の例を提供してくれました。

curl -v -F dictation_file=@file.name -F category=1 http://my.server.com/files/create/

AFNetworking を使用していますが、次のコードが機能しません。

NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    [parameters setObject:title forKey:@"title"];
    [parameters setObject:category forKey:@"category"];

    NSMutableURLRequest *request = [self multipartFormRequestWithMethod:@"POST" 
                                                                   path:@"files/create/" 
                                                             parameters:parameters 
                                              constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
                                                  NSData *data= [NSData dataWithContentsOfFile:record.filePath];
                                                  [formData appendPartWithFileData:data mimeType:@"application/octet-stream" name:@"dictation_file"];
                                              }];

    AFHTTPRequestOperation *operation = [AFHTTPRequestOperation operationWithRequest:request 
                                                                          completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) 
    { // handlecodehere
}];

ただし、json の応答で、dictation_file フィールドが空であるという情報を受け取ります。私はcurlを理解していないのでしょうか?@file.name は、単にフィールド内のエンコードされたデータを置換するだけですよね?

4

1 に答える 1

0

appendPartWithFileData:mimeType:name: メソッドを変更する必要がありました。

この行で

[mutableHeaders setValue:[NSString stringWithFormat:@"file; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"]; 

ファイルの代わりにフォームデータを書きました。

于 2011-10-12T06:53:41.153 に答える