首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AFNetworking上传文件

使用AFNetworking上传文件
EN

Stack Overflow用户
提问于 2011-10-12 14:26:38
回答 1查看 4K关注 0票数 0

我的后端编码器为我提供了文件上传的curl示例:

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

我使用的是AFNetworking,但以下代码不起作用:

代码语言:javascript
复制
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只是简单地替换字段中的编码数据,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 14:53:41

我不得不修改appendPartWithFileData:mimeType:name: method。

在这条线上

代码语言:javascript
复制
[mutableHeaders setValue:[NSString stringWithFormat:@"file; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"]; 

我写的不是文件,而是form-data。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7736085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档