【发布时间】:2016-05-14 00:25:50
【问题描述】:
我正在尝试使用多部分方法将照片上传到我的 iOS 应用程序的服务器上。但是,我似乎无法让它工作。我收到错误消息:
您指定的前提条件中至少有一个不成立。 Bucket POST 必须是机柜类型的多部分。我已经查看了这个错误,但似乎无法弄清楚如何最终解决这个问题。该应用的 Android 版本可以运行,所以 API 应该不是问题?
这是我的代码:
//photo file
NSData *data = [[NSFileManager defaultManager] contentsAtPath:filePath];
NSMutableDictionary* _params = [[NSMutableDictionary alloc] init];
[_params setObject:uploadInfo.key forKey:@"key"];
[_params setObject:uploadInfo.aaki forKey:@"AWSAccessKeyId"];
[_params setObject:uploadInfo.acl forKey:@"acl"];
[_params setObject:uploadInfo.policy forKey:@"policy"];
[_params setObject:uploadInfo.signature forKey:@"signature"];
[_params setObject:uploadInfo.success_action_status forKey:@"success_action_status"];
[_params setObject:@"image/jpeg" forKey:@"Content-Type"];
NSURL* requestURL = [NSURL URLWithString:uploadInfo.path];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setHTTPShouldHandleCookies:NO];
[request setTimeoutInterval:30];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
for (NSString *param in _params) {
[body appendData:[[NSString stringWithFormat:@"%@", [_params objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]];
}
if (data) {
[body appendData:data];
}
[request setHTTPBody:body];
[request setURL:requestURL];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data1 = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseString = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",responseString);
【问题讨论】:
-
我没有设置任何代表,这有什么不同吗?
-
您还有其他图片参数,还是只上传不带任何参数的图片?
-
我还在代码中的 for 循环中附加了参数
-
总共需要上传多少张图片?
-
只有一张图片到服务器
标签: ios nsurlrequest multipart