在我的 iOS 应用程序中,我想通过使用 NSMutableURLRequest
的 java API 为多部分文件上传文件。这是显示参数的表格。
<form action="API_URL" encType='multipart/form-data' method=post>
<input type=file name="files">
<input type=submit value="Upload Attempt Files">
编辑表格 2
<form action='URL' method="post" encType='multipart/form-data'>
<input name="key1" value='123'>
<input name="key2" value='asdf'>
<input name="key3" value='qwerty'>
<input name="key4" value='aaa'>
<input name="key5" value='aaa'>
<input name="key6" value='false'>
<input type="file" name="files">
<input type=submit value="Create Forum Posts">
</form>
我怎样才能做到这一点?
这Question显示如何使用 AFNetworking 上传多部分文件在 iOS 中( objective-c )。但是我不知道如何按照我正在使用的形式放置参数。
最佳答案
查看您的 HTML,name
你的<input type=file>
是files
,因此,您将使用 @"files"
作为name
appendPartWithFileData
的参数方法。例如,使用 AFNetworking 3.x :
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData
name:@"files"
fileName:photoName mimeType:@"image/jpeg"];
[formData appendPartWithFormData:[key1 dataUsingEncoding:NSUTF8StringEncoding]
name:@"key1"];
[formData appendPartWithFormData:[key2 dataUsingEncoding:NSUTF8StringEncoding]
name:@"key2"];
// etc.
} progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Response: %@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error: %@", error);
}];
(对于 AFNetworking 1.x 和 2.x 语法,请参阅此答案的修订历史。)
关于ios - iPhone 使用 AFNetworking 上传多部分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410689/